atomicrex
0.1
An advanced atomistic model building tool
|
Base class for cubic lattice structures with two atom types (binary). More...
#include <LatticeStructures.h>
Public Member Functions | |
virtual void | parse (XML::Element structureElement) override |
Parses structure-specific parameters in the XML element in the job file. | |
int | atomTypeA () const |
Returns the first atom type of the lattice. | |
void | setAtomTypeA (double atomType) |
Set the first atom type of the lattice. | |
int | atomTypeB () const |
Returns the second atom type of the lattice. | |
void | setAtomTypeB (double atomType) |
Set the first atom type of the lattice. | |
const ScalarDOF & | latticeParameter () const |
Returns the lattice parameter of the structure. | |
CoupledFitProperty & | latticeParameterProperty () |
Returns the property for computing the relaxed lattice parameter. | |
![]() | |
AtomicStructure (const FPString &id, FitJob *job) | |
void | setupSimulationCell (const Matrix3 &cellVectors, const Point3 &cellOrigin=Point3::Origin(), const std::array< bool, 3 > &pbc=std::array< bool, 3 >{{true, true, true}}) |
Set up the simulation cell. More... | |
void | deformSimulationCell (const Matrix3 &deformation) |
Applies an affine transformation to the cell and the atoms. More... | |
const Matrix3 & | simulationCell () const |
Returns global simulation cell matrix. More... | |
const Point3 & | simulationCellOrigin () const |
The origin point of the global simulation cell in world coordinates. More... | |
const Matrix3 & | reciprocalSimulationCell () const |
The inverse of the simulation cell matrix used to transform absolute coordinates to reduced coordinates. More... | |
bool | hasPBC (size_t dimension) const |
Returns whether periodic boundary conditions are enabled in the given spatial dimension. More... | |
const std::array< bool, 3 > & | pbc () const |
Returns the periodic boundary condition flags. More... | |
Vector3I | periodicImage (const Point3 &p) const |
Determines the periodic image of the cell the given point is located in. | |
Point3 | wrapPoint (Point3 p) const |
Wraps a point to be inside the simulation cell if periodic boundary conditions are enabled. | |
Point3 | wrapReducedPoint (Point3 p) const |
Wraps a point given in reduced coordinated to be inside the simulation cell. | |
Point3 | reducedToAbsolute (const Point3 &reducedPoint) const |
Converts a point given in reduced cell coordinates to a point in absolute coordinates. | |
Point3 | absoluteToReduced (const Point3 &worldPoint) const |
Converts a point given in absolute coordinates to a point in reduced cell coordinates. | |
Vector3 | reducedToAbsolute (const Vector3 &reducedVec) const |
Converts a vector given in reduced cell coordinates to a vector in absolute coordinates. | |
Vector3 | absoluteToReduced (const Vector3 &worldVec) const |
Converts a vector given in absolute coordinates to a point in vector cell coordinates. | |
void | setAtomCount (int numLocalAtoms) |
Resizes the atoms array. More... | |
int | numLocalAtoms () const |
Returns the number of (real) atoms in the structure cell. | |
int | numGhostAtoms () const |
Returns the number of ghost atoms in the structure cell. | |
int | numAtoms () const |
Returns the total number of atoms in the structure cell including real and ghost atoms. | |
const std::vector< Point3 > & | atomPositions () const |
Returns the array of positions of all atoms (including ghosts) in the structure (const version). | |
std::vector< Point3 > & | atomPositions () |
Returns the array of positions of all atoms (including ghosts) in the structure cell (non-const version). | |
void | setAtomPositions (const std::vector< Point3 > &newPositions) |
Sets the array of positions of all atoms in the structure cell. More... | |
const std::vector< Point3 > & | atomDisplacements () const |
Returns the array of displacements of all atoms in the structure cell wrt a reference structure (const version). | |
std::vector< Point3 > & | atomDisplacements () |
Returns the array of displacements of all atoms in the structure cell wrt a reference structure (non-const version). | |
const std::vector< Point3 > & | atomInitialPositions () const |
Returns the initial positions of the all real atoms they had at the beginning of the job. | |
int | atomType (int i) const |
Returns the type of a i-th atom. | |
const std::vector< int > & | atomTypes () const |
Returns the array of types of all atoms in the cell (const version). | |
std::vector< int > & | atomTypes () |
Returns the array of types of all atoms in the cell (non-const version). | |
const std::vector< int > & | atomTags () const |
Returns the array of IDs of the atoms in the cell (const version). | |
std::vector< int > & | atomTags () |
Returns the array of IDs of the atoms in the cell (non-const version). | |
const std::vector< Vector3 > & | atomForces () const |
Returns the array of force vectors (const version). | |
std::vector< Vector3 > & | atomForces () |
Returns the array of force vectors (non-const version). | |
AtomVectorProperty & | atomForcesProperty () |
Returns the property for the atomic force vectors. | |
const std::vector< std::pair< int, int > > & | forwardMapping () const |
Returns an array of integer pairs that map the real atoms to the ghost atoms. | |
const std::vector< int > & | reverseMapping () const |
Returns an array of integers that maps the ghost atoms to the real atoms. | |
template<typename T > | |
T * | perAtomData () |
Returns a pointer to the memory buffer that stores temporary per-atom data used by the potential routines. | |
NeighborList & | neighborList (const Potential *potential) |
void | setDirty (DirtyFlags flags) |
Marks parts of the structure that must be updated before the next energy calculation. | |
bool | isDirty (DirtyFlags parts) const |
Tests whether certain parts of the structure must be updated before the next energy calculation. | |
void | clearDirty (DirtyFlags parts) |
Resets the dirty flags. | |
virtual void | dofValueChanged (DegreeOfFreedom &dof) override |
This callback function is called by the DOFs of the structure each time when their values changes. More... | |
virtual void | updateStructure () |
Updates the structure, creates ghost atoms and builds neighbor lists. | |
virtual bool | computeProperties (bool isFitting) override |
Computes all enabled properties of the structures. More... | |
double | computeEnergy (bool computeForces, bool isFitting, bool suppressRelaxation=false) |
Computes the total energy and optionally the forces for this structure. More... | |
bool | relax (bool isFitting) |
Relaxes the structural degrees of freedom such that the total energy is minimized. More... | |
void | writeToDumpFile (const FPString &filename, bool includeGhostAtoms=false) const |
Exports the structure to a LAMMPS dump file. More... | |
void | writeToPoscarFile (const FPString &filename, bool includeGhostAtoms=false) const |
Exports the structure to a POSCAR file. More... | |
void | writeToFile () |
Exports the structure to file if a filename has been provided. | |
double | totalEnergy () const |
Returns the total potential energy of this structure after computeEnergy() has been called. | |
const std::array< double, 6 > & | virial () const |
Returns the virial tensor computed by the force routine. | |
std::array< double, 6 > & | virial () |
Returns a reference to the virial tensor. More... | |
double | pressureTensor (int voigtIndex) const |
Returns a component of the pressure tensor. More... | |
double | pressure () const |
Returns the hydrostatic part of the pressure tensor. More... | |
![]() | |
virtual | ~FitObject ()=default |
Virtual destructor. | |
double | relativeWeight () const |
Returns the relative fit weight assigned to this object. | |
void | setRelativeWeight (double weight) |
Assigns a relative fit weight to this object. | |
virtual void | assignAbsoluteWeights (double absoluteWeight) |
Recursively assigns absolute weights to the properties of this object and its sub-objects. | |
const std::vector< FitProperty * > & | properties () const |
Returns a list of fitting properties of this object. | |
void | listAllProperties (std::vector< FitProperty *> &list) const |
Builds a list of properties of this object and all its sub-objects. | |
FitProperty * | propertyById (const FPString &id) const |
Returns the property with the given ID. | |
const std::vector< DegreeOfFreedom * > & | DOF () const |
Returns a list of degrees of freedom of this object. | |
void | listAllDOF (std::vector< DegreeOfFreedom *> &list) const |
Builds a list of degrees of freedom of this object and all its sub-objects. | |
DegreeOfFreedom * | DOFById (const FPString &id, const FPString &tag=FPString()) const |
Returns the degree of freedom with the given ID (and tag). | |
const std::vector< FitObject * > & | fitObjects () const |
Returns the list of FitObjects which are part of this group. | |
void | registerSubObject (FitObject *subobject, bool deleteOnShutdown=false) |
Registers a sub-object. | |
virtual void | print (MsgLogger &stream) |
Outputs the name of the object. | |
bool | fitEnabled () const |
Returns whether this object and it's children are included in the fit. | |
void | setFitEnabled (bool enable) |
Sets whether this object and it's children are included in the fit. | |
bool | outputEnabled () const |
void | setOutputEnabled (bool enable) |
const FPString & | id () const |
Returns the identifier of this object instance. | |
void | setId (const FPString &id) |
Sets the main identification tag. | |
const FPString & | tag () const |
Returns the assigned tag string. | |
void | setTag (const FPString &tag) |
Sets the complementary identification tag. | |
FitJob * | job () const |
Returns a pointer to the job to which this object belongs. | |
FitObject * | parent () const |
Returns the parent of this object in the hierarchy. | |
Protected Member Functions | |
BinaryCubicLatticeStructure (const FPString &id, FitJob *job) | |
Constructor. | |
![]() | |
FitObject () | |
Default Constructor. | |
FitObject (const FPString &id, FitJob *job, const FPString &tag=FPString()) | |
Constructor. | |
void | registerProperty (FitProperty *prop, bool deleteOnShutdown=false) |
Registers a property of this object. | |
void | registerDOF (DegreeOfFreedom *dof) |
Registers a DOF of this object. | |
Additional Inherited Members | |
![]() | |
enum | DirtyFlags { NEIGHBOR_LISTS = (1<<0), ATOM_POSITIONS = (1<<1), STRUCTURE_DOF = (1<<4) } |
Flags that indicate which parts of the structure need to be updated prior to the next energy calculation. More... | |
enum | OutputFormat { POSCAR, LAMMPS } |
Possible formats for writing the structure to file. | |
![]() | |
ScalarFitProperty | _totalEnergyProperty |
Output of the energy calculation that can be used for fitting. | |
ScalarFitProperty | _atomicEnergyProperty |
Output of the per atom energy calculation that can be used for fitting. | |
ScalarFitProperty | _totalVolumeProperty |
The total volume of the structure cell. | |
ScalarFitProperty | _atomicVolumeProperty |
The average volume per atom in the structure cell. | |
ScalarFitProperty | _pressureTensorProperty [6] |
The components of the cell's pressure tensor. | |
ScalarFitProperty | _pressureProperty |
One third of the trace of the cell's pressure tensor. | |
ScalarFitProperty | _bulkModulusProperty |
The bulk modulus of the lattice. | |
ScalarFitProperty | _elasticConstantProperties [21] |
The elastic constants. | |
AtomVectorProperty | _atomForcesProperty |
The force vector. | |
AtomCoordinatesDOF | _atomCoordinatesDOF |
This DOF encapsulates the atomic degrees of freedom. | |
![]() | |
bool | _fitEnabled = true |
Controls whether this object and it's children are included in the fit. | |
bool | _outputEnabled = true |
FitJob * | _job = nullptr |
Pointer to the job this object belongs to. | |
FPString | _id |
The identifier string of this object instance. | |
double | _relativeWeight = 1.0 |
The relative fit weight assigned to this object. | |
Base class for cubic lattice structures with two atom types (binary).
This class is used to specify e.g., rocksalt, zinc blende, and cesium chloride structures.