Abstract base class of all potentials. More...
#include <Potential.h>
Public Member Functions | |
| virtual | ~AsapPotential () |
| virtual void | SetAtoms (Atoms *a)=0 |
| Set the atoms belonging to this potential. | |
| virtual double | GetPotentialEnergy ()=0 |
| Calculate the total energy of the system. | |
| virtual const Vec * | GetCartesianForces ()=0 |
| Calculate the forces on all atoms and return the result. | |
| virtual const symTensor * | GetStresses (const Vec *momenta=0)=0 |
| Calculate the stress on all atoms. | |
| virtual void | GetStress (double stress[6], const Vec *momenta=0)=0 |
| Calculate the total stress of the system. | |
| virtual const double * | GetPotentialEnergies ()=0 |
| Calculate the energy of all atoms. | |
| virtual void | CheckNeighborLists ()=0 |
| virtual double | CalculateLatticeEnergy (const Vec a[3]) |
| Calculate the energy of an atom in a regular fcc(?) lattice. | |
| virtual void | CalculateDerivatives (const Vec a[3], double dEdaDota[6]) |
| Calculate derivative of the energy of an atom in a regular lattice. | |
| virtual double | GetData () const |
| Get data used by the QuasiContinuum method. | |
| virtual double | GetCutoffRadius () const =0 |
| Return the cutoff radius used in the potential. | |
| virtual double | GetLatticeConstant () const =0 |
| Return the lattice constant of the material, if well-defined. | |
| virtual void | UpdateSuperCell (const SuperCell *newSuperCell)=0 |
| Tell the Potential that a new SuperCell has been assigned to the atoms. | |
| virtual int | GetNumberOfAtoms () const =0 |
| Get the number of atoms. | |
Abstract base class of all potentials.
A Potential calculates forces, energies and stresses for a list of atoms. A given instance of a Potential is associated with a specific Atoms object on a one-to-one bases, this is established when Atoms.SetCalculator() is called.
Two types of classes are derived from Potential.
Definition at line 29 of file Potential.h.
|
inlinevirtual |
Definition at line 31 of file Potential.h.
|
inlinevirtual |
Calculate derivative of the energy of an atom in a regular lattice.
Used by the QuasiContinuum method.
Reimplemented in EMT.
Definition at line 77 of file Potential.h.
|
inlinevirtual |
Calculate the energy of an atom in a regular fcc(?) lattice.
Given the lattice vectors, this function calculates the energy of a single atom in the lattice. Used for the QuasiContinuum method.
Reimplemented in EMT.
Definition at line 68 of file Potential.h.
|
pure virtual |
Implemented in EMT.
|
pure virtual |
Calculate the forces on all atoms and return the result.
Implemented in EMT.
|
pure virtual |
Return the cutoff radius used in the potential.
Implemented in EMT, and GhostPotential.
|
inlinevirtual |
Get data used by the QuasiContinuum method.
Reimplemented in EMT.
Definition at line 82 of file Potential.h.
|
pure virtual |
Return the lattice constant of the material, if well-defined.
If a lattice constant of the material can be defined, return it in Angstrom, otherwise throw an exception.
Implemented in EMT, and GhostPotential.
|
pure virtual |
Get the number of atoms.
Implemented in EMT.
|
pure virtual |
Calculate the energy of all atoms.
Implemented in EMT.
|
pure virtual |
Calculate the total energy of the system.
Implemented in EMT.
|
pure virtual |
Calculate the total stress of the system.
Note that the output variable stress is not zeroed first. In quasicontinuum simulations and other situations where there is a contribution to the stress which is not from the atoms, the stress parameter can initially be set to the appropriate derivatives of the energy of that part of the calculation (without the volume normalization, which will be performed by the potential).
Implemented in EMT.
Calculate the stress on all atoms.
Implemented in EMT.
|
pure virtual |
Set the atoms belonging to this potential.
This is called automatically by Atoms.SetCalculator() and should not be called elsewhere.
Implemented in EMT.
|
pure virtual |