[ase-users] [ase-developers] ASE calculator interface proposal

Jussi Enkovaara jussi.enkovaara at aalto.fi
Fri Jan 25 09:08:52 CET 2013


On 2013-01-24 19:46, Peterson, Andrew wrote:
> On Thu, Jan 24, 2013 at 4:47 AM, Jussi Enkovaara
> <jussi.enkovaara at aalto.fi>wrote:
>
>>
>> Also, I think that the above approach brings up the question whether
>> one attaches atoms to a calculator, and asks calculator to determine
>> physical quantities for this atomic configuration, or attaches
>> calculator to atoms and asks physical quantities from atoms object, i.e.
>> which comes first, atoms or calculator? There is already some
>> controversy as some quantities are requested from atoms (energy,
>> forces), and some from the calculator (wavefunctions, densities).
>> Personally, I do not have strong feelings over this matter, asking atoms
>> is maybe a little bit more physics oriented (calculator is just black
>> box providing numbers), on the other hand asking calculator would unify
>> things in the sense that everything is requested from calculator
>> (quantities available from MD calculator are of course quite different
>> than the ones availabe from DFT calculator).
>>
>
> Don't forget the subtlety that atoms.get_forces() and calc.get_forces() do
> not give the same thing back in general. The atoms forces are subject to
> constraints, while the calc forces are the raw forces.
>
> The current setup enables one to query the atoms object for the atomistic
> parts of the simulation (e.g., geometry optimizations, molecular dynamics)
> and query the calculator for the electronic structure parts of the
> simulation (e.g., densities of states, electron densities, fields, raw
> forces etc.). I like this behavior.

Hi,
I am personally fine with current behaviour :-). I've just sometimes 
seen new users getting confused about when to call atoms-methods and 
when calculator-methods. Emphasizing the distinction between atomistic 
properties and electronic structure properties would probably make the 
difference between atoms.get_something() and calculator.get_something() 
more clear.

There is naturaly also vast amount of existing ASE-scripts, so changing 
the atoms/calculator relationship is not a good idea from a point of 
backward compatibility. Maybe there is some room for documenting the
difference between Atoms and Calculator better :-)

Best regards,
Jussi



More information about the ase-users mailing list