Open Qmin
0.8.0
GPU-accelerated Q-tensor-based liquid crystal simulations
|
Each site on the underlying lattice gets a local Q-tensor. More...
#include <qTensorLatticeModel.h>
Public Member Functions | |
qTensorLatticeModel (int l, bool _useGPU=false, bool _neverGPU=false) | |
construct an underlying cubic lattice More... | |
qTensorLatticeModel (int lx, int ly, int lz, bool _useGPU=false, bool _neverGPU=false) | |
virtual void | moveParticles (GPUArray< dVec > &displacements, scalar scale=1.) |
(possibly) need to rewrite how the Q tensors update with respect to a displacement call More... | |
void | setNematicQTensorRandomly (noiseSource &noise, scalar s0, bool globallyAligned=false) |
initialize each d.o.f., also passing in the value of the nematicity More... | |
void | getAverageEigenvalues () |
get field-averaged eigenvalues More... | |
void | createBoundaryFromFile (string fname, bool verbose=false) |
import a boundary object from a (carefully prepared) text file More... | |
void | createSimpleFlatWallNormal (int plane, int xyz, boundaryObject &bObj) |
create a flat wall at the specified location, on either an x,y, or z plane, with anchoring given by the boundary object More... | |
void | createSimpleFlatWallZNormal (int zPlane, boundaryObject &bObj) |
create a flat wall (with z-normal) at the specified location, with anchoring given by the boundary object More... | |
void | createSimpleSpherialColloid (scalar3 center, scalar radius, boundaryObject &bObj) |
create a spherical colloid with anchoring given by the boundary object (with surface normal the director direction) More... | |
void | computeDefectMeasures (int defectType) |
compute different measures of whether a site is a defect More... | |
virtual scalar | getClassSize () |
return size of data in class in GB More... | |
virtual void | moveParticles (GPUArray< dVec > &dofs, GPUArray< dVec > &displacements, scalar scale=1.) |
move a different GPU array according to the same rules More... | |
void | setSpinsRandomly (noiseSource &noise) |
initialize each d.o.f. to be a unit spin on the sphere More... | |
virtual int | getNeighbors (int target, vector< int > &neighbors, int &neighs, int stencilType=0) |
return the integer corresponding to the given site, along with the indices of the six nearest neighbors More... | |
void | sliceIndices (bool _s=true) |
decide to slice sites More... | |
int | latticeSiteToLinearIndex (const int3 &target) |
given a triple, determine what More... | |
virtual void | fillNeighborLists (int stencilType=0) |
store the neighbors of each lattice site. The i'th neighbor of site j is given by neighboringSites[neighborIndex(i,j)] More... | |
virtual dVec | averagePosition () |
return the mean spin More... | |
virtual void | displaceBoundaryObject (int objectIndex, int motionDirection, int magnitude) |
Displace a boundary object (and surface sites) by one of the six primitive cubic lattice directions. More... | |
void | createBoundaryObject (vector< int > &latticeSites, boundaryType _type, scalar Param1, scalar Param2) |
assign a collection of lattice sites to a new boundaryObject More... | |
void | initializeSimpleModel (int n) |
initialize the size of the basic data structure arrays More... | |
virtual void | setGPU (bool _useGPU=true) |
Enforce GPU operation. More... | |
virtual int | getNumberOfParticles () |
get the number of degrees of freedom, defaulting to the number of cells More... | |
virtual void | computeForces (bool zeroOutForces=false) |
do everything unusual to compute additional forces... by default, sets forces to zero More... | |
void | setParticlePositions (GPUArray< dVec > &newPositions) |
void | setParticlePositions (vector< dVec > &newPositions) |
void | setParticlePositionsRandomly (noiseSource &noise) |
scalar | setVelocitiesMaxwellBoltzmann (scalar T, noiseSource &noise) |
Set velocities via a temperature. The return value is the total kinetic energy. More... | |
virtual scalar | computeKineticEnergy (bool verbose=false) |
compute the current KE More... | |
virtual scalar | computeInstantaneousTemperature (bool fixedMomentum=true) |
compute the dimension-dependent instantaneous temperature More... | |
virtual void | spatialSorting () |
do everything necessary to perform a Hilbert sort More... | |
virtual GPUArray< dVec > & | returnPositions () |
return a reference to the GPUArray of positions More... | |
virtual GPUArray< dVec > & | returnForces () |
return a reference to the GPUArray of the current forces More... | |
virtual GPUArray< int > & | returnTypes () |
return a reference to the GPUArray of the integer types More... | |
virtual GPUArray< dVec > & | returnVelocities () |
return a reference to the GPUArray of the current velocities More... | |
virtual GPUArray< scalar > & | returnDefectMeasures () |
return a reference to the GPUArray of the current defects More... | |
virtual void | setNThreads (int n) |
allow for setting multiple threads More... | |
virtual void | freeGPUArrays (bool freeVelocities, bool freeRadii, bool freeMasses) |
some situations do not require us to maintain various data structures More... | |
Public Attributes | |
Index3D | latticeIndex |
indexer for lattice sites More... | |
Index2D | neighborIndex |
indexer for neighbors More... | |
GPUArray< int > | neighboringSites |
List of neighboring lattice sites. More... | |
GPUArray< boundaryObject > | boundaries |
list of the non-bulk objects in the simulations More... | |
vector< GPUArray< int > > | boundarySites |
A vector that keeps track of the sites associated with each boundary object. More... | |
vector< GPUArray< int > > | surfaceSites |
A vector that keeps track of the surface sites associated with each boundary object. More... | |
vector< int > | boundaryState |
A vector of flags that specifies the state of each boundary object...most schemes will be 0 = fixed boundary, 1 = movable boudnary. More... | |
vector< scalar3 > | boundaryForce |
The force (from integrating the stress tensor) on each object. More... | |
GPUArray< pair< int, dVec > > | boundaryMoveAssist1 |
An assist vector that can keep track of changes to boundary sites during a move. First element is the index a Qtensor (second ) will move to. More... | |
GPUArray< pair< int, dVec > > | boundaryMoveAssist2 |
An assist vector that can keep track of changes to surface sites during a move. First element is the index a Qtensor (second ) will move to. More... | |
bool | selfForceCompute |
Does this model have a special force it needs to compute itself? More... | |
BoxPtr | Box |
The space in which the particles live. More... | |
bool | forcesComputed |
Are the forces current? set to false after every call to moveParticles. set to true after the SIMULATION calls computeForces. More... | |
GPUArray< scalar > | defectMeasures |
scalars that can represent different defect measures More... | |
bool | neverGPU |
Whereas useGPU can be turned on and off, neverGPU is fixed. More... | |
Protected Member Functions | |
void | initializeNSites () |
a utility function for initialization More... | |
Protected Attributes | |
bool | sliceSites |
should we use a memory-efficient slicing scheme? More... | |
int | L |
lattice sites per edge More... | |
bool | normalizeSpins |
normalize vector length when moving spins? More... | |
shared_ptr< kernelTuner > | moveParticlesTuner |
performance for the moveParticles kernel More... | |
int | N |
The number of particles. More... | |
int | nThreads =1 |
number of threads to use More... | |
GPUArray< dVec > | positions |
particle positions More... | |
GPUArray< dVec > | velocities |
particle velocities More... | |
GPUArray< dVec > | forces |
Forces on particles. More... | |
GPUArray< int > | types |
particle types More... | |
bool | useGPU |
particle radii More... | |
Each site on the underlying lattice gets a local Q-tensor.
The Q-tensor has five independent components, which will get passed around in dVec structures... a dVec of q[0,1,2,3,4] corresponds to the symmetric traceless tensor laid out as (q[0] q[1] q[2] ) Q = (q[1] q[3] q[4] ) (q[2] q[4] -(q[0]+q[3]) )
Boundaries are implemented by making use of the "type" data structure that is inherited from the base simpleModel class...: each bulk LC lattice site will have type zero (the default), and lattice sites adjacent to a boundary will have type < 0 (-1 for now, possibly optimized later). A lattice site type[i] > 0 will mean the lattice site is part of whatever object boundaries[type[i]-1] refers to.
The qTensorLatticeModel implements a "create boundary" method which takes an array of lattice sites, appends a new boundaryObject to boundaries (so that boundaries[j] now exists), and then sets the type of the lattice sites so that type[i] = j+1
qTensorLatticeModel::qTensorLatticeModel | ( | int | l, |
bool | _useGPU = false , |
||
bool | _neverGPU = false |
||
) |
construct an underlying cubic lattice
This simply calls the cubic lattice constructor (without slicing optimization, since that is not yet operational). Additionally, throws an exception if the dimensionality is incorrect.
References simpleModel::defectMeasures, simpleModel::N, simpleModel::neverGPU, GPUArray< T >::noGPU, cubicLattice::normalizeSpins, and GPUArray< T >::resize().
qTensorLatticeModel::qTensorLatticeModel | ( | int | lx, |
int | ly, | ||
int | lz, | ||
bool | _useGPU = false , |
||
bool | _neverGPU = false |
||
) |
|
virtual |
(possibly) need to rewrite how the Q tensors update with respect to a displacement call
Reimplemented from cubicLattice.
References ArrayHandle< T >::data, access_location::device, gpu_update_qTensor(), access_location::host, cubicLattice::moveParticlesTuner, simpleModel::N, simpleModel::positions, access_mode::read, access_mode::readwrite, and simpleModel::useGPU.
void qTensorLatticeModel::setNematicQTensorRandomly | ( | noiseSource & | noise, |
scalar | s0, | ||
bool | globallyAligned = false |
||
) |
initialize each d.o.f., also passing in the value of the nematicity
References ArrayHandle< T >::data, access_location::device, noiseSource::getRealUniform(), gpu_set_random_nematic_qTensors(), access_location::host, noiseSource::initialize(), noiseSource::initializeGPURNGs(), n, simpleModel::N, PI, simpleModel::positions, qTensorFromDirector(), access_mode::read, access_mode::readwrite, noiseSource::RNGs, scalar, scalar3, simpleModel::types, and simpleModel::useGPU.
void qTensorLatticeModel::getAverageEigenvalues | ( | ) |
get field-averaged eigenvalues
References ArrayHandle< T >::data, eigenvaluesOfQ(), access_location::host, n, simpleModel::N, simpleModel::positions, access_mode::read, scalar, and simpleModel::types.
void qTensorLatticeModel::createBoundaryFromFile | ( | string | fname, |
bool | verbose = false |
||
) |
import a boundary object from a (carefully prepared) text file
Reads a carefully prepared text file to create a new boundary object... The first line must be a single integer specifying the number of objects to be read in.
Each subsequent block must be formatted as follows (with no additional lines between the blocks): The first line MUST be formatted as a b c d where a=0 means homeotropic, a=1 means degeneratePlanar b is a scalar setting the anchoring strength c is the preferred value of S0 d is an integer specifying the number of sites.
Every subsequent line MUST be x y z Qxx Qxy Qxz Qyy Qyz, where x y z are the integer lattice sites, and the Q-tensor components correspond to the desired anchoring conditions. For homeotropic boundaries, Q^B = 3 S_0/2*(\nu^s \nu^s - \delta_{ab}/3), where \nu^s is the locally preferred director. For degenerate planar anchoring the boundary site should be, Q^B[0] = \hat{nu}_x Q^B[1] = \hat{nu}_y Q^B[2] = \hat{nu}_z where \nu^s = {Cos[[Phi]] Sin[[theta]], Sin[[Phi]] Sin[[theta]], Cos[[theta]]} is the direction to which the LC should try to be orthogonal
References cubicLattice::createBoundaryObject(), ArrayHandle< T >::data, degeneratePlanar, homeotropic, cubicLattice::latticeIndex, simpleModel::positions, scalar, Index3D::sizes, and wrap().
void qTensorLatticeModel::createSimpleFlatWallNormal | ( | int | plane, |
int | xyz, | ||
boundaryObject & | bObj | ||
) |
create a flat wall at the specified location, on either an x,y, or z plane, with anchoring given by the boundary object
References boundaryObject::boundary, cubicLattice::createBoundaryObject(), ArrayHandle< T >::data, degeneratePlanar, homeotropic, cubicLattice::latticeIndex, boundaryObject::P1, boundaryObject::P2, simpleModel::positions, scalar, Index3D::sizes, and UNWRITTENCODE.
void qTensorLatticeModel::createSimpleFlatWallZNormal | ( | int | zPlane, |
boundaryObject & | bObj | ||
) |
create a flat wall (with z-normal) at the specified location, with anchoring given by the boundary object
References boundaryObject::boundary, cubicLattice::createBoundaryObject(), ArrayHandle< T >::data, degeneratePlanar, homeotropic, cubicLattice::latticeIndex, boundaryObject::P1, boundaryObject::P2, simpleModel::positions, Index3D::sizes, and UNWRITTENCODE.
void qTensorLatticeModel::createSimpleSpherialColloid | ( | scalar3 | center, |
scalar | radius, | ||
boundaryObject & | bObj | ||
) |
create a spherical colloid with anchoring given by the boundary object (with surface normal the director direction)
References boundaryObject::boundary, cubicLattice::createBoundaryObject(), ArrayHandle< T >::data, degeneratePlanar, homeotropic, cubicLattice::latticeIndex, norm(), boundaryObject::P1, boundaryObject::P2, simpleModel::positions, qTensorFromDirector(), scalar, scalar3, Index3D::sizes, UNWRITTENCODE, and wrap().
void qTensorLatticeModel::computeDefectMeasures | ( | int | defectType | ) |
compute different measures of whether a site is a defect
defectType==0 stores the largest eigenvalue of Q at each site defectType==1 stores the determinant of Q each site defectType==2 stores the (Tr(Q^2))^3-54 det(Q)^2 at each site
References ArrayHandle< T >::data, simpleModel::defectMeasures, determinantOfQ(), access_location::device, eigenvaluesOfQ(), gpu_get_qtensor_DefectMeasures(), access_location::host, simpleModel::N, access_mode::overwrite, simpleModel::positions, access_mode::read, scalar, TrQ2(), simpleModel::types, and simpleModel::useGPU.
|
inlinevirtual |
return size of data in class in GB
Reimplemented from cubicLattice.
Reimplemented in multirankQTensorLatticeModel.
References cubicLattice::getClassSize().
Referenced by multirankQTensorLatticeModel::getClassSize().
|
virtualinherited |
move a different GPU array according to the same rules
References ArrayHandle< T >::data, access_location::device, gpu_update_spins(), access_location::host, simpleModel::N, norm(), cubicLattice::normalizeSpins, access_mode::read, access_mode::readwrite, scalar, and simpleModel::useGPU.
|
inherited |
initialize each d.o.f. to be a unit spin on the sphere
References ArrayHandle< T >::data, access_location::device, dot(), noiseSource::getRealNormal(), gpu_set_random_spins(), noiseSource::initialize(), noiseSource::initializeGPURNGs(), simpleModel::N, access_mode::overwrite, simpleModel::positions, access_mode::readwrite, noiseSource::RNGs, scalar, and simpleModel::useGPU.
|
virtualinherited |
return the integer corresponding to the given site, along with the indices of the six nearest neighbors
returns, in the vector "neighbors" a list of lattice neighbors of the target site. If stencilType ==0 (the default), the result will be neighs = 6; neighbors = {xMinus, xPlus, yMinus, yPlus, zMinus, zPlus}; If stencilType ==1 neighbors will be suitable for computing mixed first partial derivatives \partial_a \partial b F: neighs = 18; neighbors = {xMinus, xPlus, yMinus, yPlus, zMinus, zPlus, xMinus_yMinus,xMinus_yPlus,xMinus_zMinus,xMinus_zPlus,xPlus_yMinus,xPlus_yPlus,xPlus_zMinus,xPlus_zPlus, yMinus_zMinus,yMinuz_zPlus,yPlus_zMinus,yPlus_zPlus}
Reimplemented in multirankQTensorLatticeModel.
References Index3D::inverseIndex(), cubicLattice::latticeIndex, Index3D::sizes, cubicLattice::sliceSites, and wrap().
Referenced by cubicLattice::createBoundaryObject(), and cubicLattice::fillNeighborLists().
|
inlineinherited |
decide to slice sites
References cubicLattice::sliceSites.
|
inherited |
given a triple, determine what
References cubicLattice::latticeIndex, and cubicLattice::sliceSites.
|
virtualinherited |
store the neighbors of each lattice site. The i'th neighbor of site j is given by neighboringSites[neighborIndex(i,j)]
stencilType here has the same meaning as in "getNeighbors" function
References ArrayHandle< T >::data, cubicLattice::getNeighbors(), simpleModel::N, cubicLattice::neighborIndex, cubicLattice::neighboringSites, and GPUArray< T >::resize().
|
inlinevirtualinherited |
return the mean spin
References ArrayHandle< T >::data, simpleModel::N, simpleModel::positions, and simpleModel::types.
|
virtualinherited |
Displace a boundary object (and surface sites) by one of the six primitive cubic lattice directions.
This function moves an object, shifting the type of lattice sites over on the lattice. Surface sites are also moved. Sites that change from being part of the boundary to a surface site adopt the average state of the neighboring sites that weren't formerly part of the boundary object. This function makes use of the fact that primitive translations will not change the total number of boundary or surface sites associated with each object
objectIndex | The position in the vector of boundarySites and surfaceSites that the desired object to move is in |
motionDirection | Which way to move the object. Follows same convention as lattice neighbors for stencilType=0 |
magnitude | number of lattice sites to move in the given direction |
Reimplemented from simpleModel.
References cubicLattice::boundaryMoveAssist1, cubicLattice::boundaryMoveAssist2, cubicLattice::boundarySites, ArrayHandle< T >::data, access_location::device, gpu_copy_boundary_object(), gpu_move_boundary_object(), access_location::host, cubicLattice::neighborIndex, cubicLattice::neighboringSites, access_mode::overwrite, simpleModel::positions, access_mode::read, access_mode::readwrite, cubicLattice::surfaceSites, simpleModel::types, and simpleModel::useGPU.
|
inherited |
assign a collection of lattice sites to a new boundaryObject
References cubicLattice::boundaries, cubicLattice::boundaryForce, cubicLattice::boundaryMoveAssist1, cubicLattice::boundaryMoveAssist2, cubicLattice::boundarySites, cubicLattice::boundaryState, ArrayHandle< T >::data, cubicLattice::getNeighbors(), GPUArray< T >::getNumElements(), simpleModel::neverGPU, GPUArray< T >::noGPU, GPUArray< T >::resize(), scalar3, cubicLattice::surfaceSites, and simpleModel::types.
Referenced by createBoundaryFromFile(), createSimpleFlatWallNormal(), createSimpleFlatWallZNormal(), and createSimpleSpherialColloid().
|
protectedinherited |
a utility function for initialization
References cubicLattice::boundaries, cubicLattice::boundaryMoveAssist1, cubicLattice::boundaryMoveAssist2, simpleModel::initializeSimpleModel(), cubicLattice::moveParticlesTuner, simpleModel::N, cubicLattice::neighboringSites, simpleModel::neverGPU, and GPUArray< T >::noGPU.
Referenced by cubicLattice::cubicLattice().
|
inherited |
initialize the size of the basic data structure arrays
actually set the array sizes. positions, velocities, forces are zero masses are set to unity
References simpleModel::defectMeasures, simpleModel::forces, make_dVec(), n, simpleModel::N, simpleModel::neverGPU, GPUArray< T >::noGPU, simpleModel::positions, GPUArray< T >::resize(), simpleModel::selfForceCompute, simpleModel::types, and simpleModel::velocities.
Referenced by cubicLattice::initializeNSites(), simpleModel::setParticlePositions(), and simpleModel::simpleModel().
|
inlinevirtualinherited |
Enforce GPU operation.
References simpleModel::useGPU.
|
inlinevirtualinherited |
get the number of degrees of freedom, defaulting to the number of cells
References simpleModel::N.
|
virtualinherited |
do everything unusual to compute additional forces... by default, sets forces to zero
References ArrayHandle< T >::data, simpleModel::forces, gpu_set_array(), simpleModel::N, and simpleModel::useGPU.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
Set velocities via a temperature. The return value is the total kinetic energy.
References ArrayHandle< T >::data, dot(), noiseSource::getRealNormal(), simpleModel::N, scalar, and simpleModel::velocities.
|
virtualinherited |
compute the current KE
References ArrayHandle< T >::data, dot(), simpleModel::N, scalar, and simpleModel::velocities.
|
virtualinherited |
compute the dimension-dependent instantaneous temperature
References ArrayHandle< T >::data, dot(), simpleModel::N, scalar, and simpleModel::velocities.
|
inlinevirtualinherited |
do everything necessary to perform a Hilbert sort
|
inlinevirtualinherited |
return a reference to the GPUArray of positions
References simpleModel::positions.
|
inlinevirtualinherited |
return a reference to the GPUArray of the current forces
References simpleModel::forces.
|
inlinevirtualinherited |
return a reference to the GPUArray of the integer types
References simpleModel::types.
|
inlinevirtualinherited |
return a reference to the GPUArray of the current velocities
References simpleModel::velocities.
return a reference to the GPUArray of the current defects
|
inlinevirtualinherited |
allow for setting multiple threads
References n, and simpleModel::nThreads.
|
inlinevirtualinherited |
some situations do not require us to maintain various data structures
|
inherited |
indexer for lattice sites
Referenced by createBoundaryFromFile(), createSimpleFlatWallNormal(), createSimpleFlatWallZNormal(), createSimpleSpherialColloid(), cubicLattice::cubicLattice(), cubicLattice::getNeighbors(), multirankQTensorLatticeModel::getNeighbors(), multirankQTensorLatticeModel::indexToPosition(), cubicLattice::latticeSiteToLinearIndex(), multirankQTensorLatticeModel::positionToIndex(), and multirankQTensorLatticeModel::prepareSendingBuffer().
|
inherited |
indexer for neighbors
Referenced by cubicLattice::displaceBoundaryObject(), and cubicLattice::fillNeighborLists().
|
inherited |
List of neighboring lattice sites.
Referenced by cubicLattice::displaceBoundaryObject(), cubicLattice::fillNeighborLists(), cubicLattice::getClassSize(), and cubicLattice::initializeNSites().
|
inherited |
list of the non-bulk objects in the simulations
Referenced by cubicLattice::createBoundaryObject(), and cubicLattice::initializeNSites().
|
inherited |
A vector that keeps track of the sites associated with each boundary object.
Referenced by cubicLattice::createBoundaryObject(), cubicLattice::displaceBoundaryObject(), and cubicLattice::getClassSize().
|
inherited |
A vector that keeps track of the surface sites associated with each boundary object.
Referenced by cubicLattice::createBoundaryObject(), cubicLattice::displaceBoundaryObject(), and cubicLattice::getClassSize().
|
inherited |
A vector of flags that specifies the state of each boundary object...most schemes will be 0 = fixed boundary, 1 = movable boudnary.
Referenced by cubicLattice::createBoundaryObject(), and cubicLattice::getClassSize().
|
inherited |
The force (from integrating the stress tensor) on each object.
Referenced by cubicLattice::createBoundaryObject().
|
inherited |
An assist vector that can keep track of changes to boundary sites during a move. First element is the index a Qtensor (second ) will move to.
Referenced by cubicLattice::createBoundaryObject(), cubicLattice::displaceBoundaryObject(), cubicLattice::getClassSize(), and cubicLattice::initializeNSites().
|
inherited |
An assist vector that can keep track of changes to surface sites during a move. First element is the index a Qtensor (second ) will move to.
Referenced by cubicLattice::createBoundaryObject(), cubicLattice::displaceBoundaryObject(), cubicLattice::getClassSize(), and cubicLattice::initializeNSites().
|
protectedinherited |
should we use a memory-efficient slicing scheme?
Referenced by cubicLattice::cubicLattice(), cubicLattice::getNeighbors(), multirankQTensorLatticeModel::getNeighbors(), cubicLattice::latticeSiteToLinearIndex(), and cubicLattice::sliceIndices().
|
protectedinherited |
lattice sites per edge
Referenced by cubicLattice::cubicLattice().
|
protectedinherited |
normalize vector length when moving spins?
Referenced by cubicLattice::cubicLattice(), cubicLattice::moveParticles(), and qTensorLatticeModel().
|
protectedinherited |
performance for the moveParticles kernel
Referenced by cubicLattice::initializeNSites(), and moveParticles().
|
inherited |
Does this model have a special force it needs to compute itself?
Referenced by cubicLattice::cubicLattice(), and simpleModel::initializeSimpleModel().
|
inherited |
The space in which the particles live.
Referenced by cubicLattice::cubicLattice(), simpleModel::moveParticles(), simpleModel::setParticlePositions(), simpleModel::setParticlePositionsRandomly(), and simpleModel::simpleModel().
|
inherited |
Are the forces current? set to false after every call to moveParticles. set to true after the SIMULATION calls computeForces.
Referenced by simpleModel::moveParticles().
scalars that can represent different defect measures
Referenced by computeDefectMeasures(), simpleModel::getClassSize(), simpleModel::initializeSimpleModel(), and qTensorLatticeModel().
|
inherited |
Whereas useGPU can be turned on and off, neverGPU is fixed.
Referenced by cubicLattice::createBoundaryObject(), cubicLattice::cubicLattice(), cubicLattice::initializeNSites(), simpleModel::initializeSimpleModel(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), and qTensorLatticeModel().
|
protectedinherited |
The number of particles.
Referenced by cubicLattice::averagePosition(), computeDefectMeasures(), simpleModel::computeForces(), simpleModel::computeInstantaneousTemperature(), simpleModel::computeKineticEnergy(), cubicLattice::cubicLattice(), cubicLattice::fillNeighborLists(), getAverageEigenvalues(), simpleModel::getNumberOfParticles(), multirankQTensorLatticeModel::indexToPosition(), cubicLattice::initializeNSites(), simpleModel::initializeSimpleModel(), cubicLattice::moveParticles(), moveParticles(), simpleModel::moveParticles(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), multirankQTensorLatticeModel::positionToIndex(), qTensorLatticeModel(), multirankQTensorLatticeModel::readReceivingBuffer(), setNematicQTensorRandomly(), simpleModel::setParticlePositions(), simpleModel::setParticlePositionsRandomly(), cubicLattice::setSpinsRandomly(), simpleModel::setVelocitiesMaxwellBoltzmann(), and simpleModel::simpleModel().
|
protectedinherited |
number of threads to use
Referenced by simpleModel::setNThreads().
|
protectedinherited |
particle positions
Referenced by cubicLattice::averagePosition(), computeDefectMeasures(), createBoundaryFromFile(), createSimpleFlatWallNormal(), createSimpleFlatWallZNormal(), createSimpleSpherialColloid(), cubicLattice::displaceBoundaryObject(), getAverageEigenvalues(), simpleModel::getClassSize(), simpleModel::initializeSimpleModel(), cubicLattice::moveParticles(), moveParticles(), simpleModel::moveParticles(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), multirankQTensorLatticeModel::prepareSendingBuffer(), multirankQTensorLatticeModel::readReceivingBuffer(), simpleModel::returnPositions(), setNematicQTensorRandomly(), simpleModel::setParticlePositions(), simpleModel::setParticlePositionsRandomly(), and cubicLattice::setSpinsRandomly().
|
protectedinherited |
particle velocities
Referenced by simpleModel::computeInstantaneousTemperature(), simpleModel::computeKineticEnergy(), simpleModel::getClassSize(), simpleModel::initializeSimpleModel(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), simpleModel::returnVelocities(), and simpleModel::setVelocitiesMaxwellBoltzmann().
|
protectedinherited |
Forces on particles.
Referenced by simpleModel::computeForces(), simpleModel::getClassSize(), simpleModel::initializeSimpleModel(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), and simpleModel::returnForces().
|
protectedinherited |
particle types
Referenced by cubicLattice::averagePosition(), computeDefectMeasures(), cubicLattice::createBoundaryObject(), cubicLattice::displaceBoundaryObject(), getAverageEigenvalues(), simpleModel::getClassSize(), simpleModel::initializeSimpleModel(), multirankQTensorLatticeModel::multirankQTensorLatticeModel(), multirankQTensorLatticeModel::prepareSendingBuffer(), multirankQTensorLatticeModel::readReceivingBuffer(), simpleModel::returnTypes(), and setNematicQTensorRandomly().
|
protectedinherited |
particle radii
particle masses Whether the GPU should be used to compute anything
Referenced by computeDefectMeasures(), simpleModel::computeForces(), cubicLattice::cubicLattice(), cubicLattice::displaceBoundaryObject(), cubicLattice::moveParticles(), moveParticles(), simpleModel::moveParticles(), multirankQTensorLatticeModel::prepareSendingBuffer(), multirankQTensorLatticeModel::readReceivingBuffer(), simpleModel::setGPU(), setNematicQTensorRandomly(), and cubicLattice::setSpinsRandomly().