metadynamics
|
Collective variable for studying phase transitions in block copolymer systems.
This class implements a collective variable based on the Fourier modes of concentration fluctuations.
The value of the collective variable is given by
, where
is the number of modes supplied,
is the wave vector associated with mode
,
its phase shift, and $a(type_j)$ is the mode coefficient for a particle of type
.
The force is calculated as minus the derivative of with respect to particle positions
, multiplied by the bias factor.
Public Member Functions | |
LamellarOrderParameter (boost::shared_ptr< SystemDefinition > sysdef, const std::vector< Scalar > &mode, const std::vector< int3 > &lattice_vectors, const std::vector< Scalar > &phases, const std::string &suffix="") | |
virtual void | computeForces (unsigned int timestep) |
std::vector< std::string > | getProvidedLogQuantities () |
Scalar | getLogValue (const std::string &quantity, unsigned int timestep) |
Scalar | getCurrentValue (unsigned int timestep) |
![]() | |
CollectiveVariable (boost::shared_ptr< SystemDefinition > sysdef, const std::string &name) | |
virtual void | setBiasFactor (Scalar bias) |
std::string | getName () |
Protected Member Functions | |
void | calculateWaveVectors () |
Helper function to update the wave vectors. |
Protected Attributes | |
std::string | m_log_name |
The log name for this collective variable. | |
std::vector< int3 > | m_lattice_vectors |
Stores the list of miller indices. | |
std::vector< Scalar > | m_mode |
Stores the per-type mode coefficients. | |
Scalar | m_sum |
The current value of the collective variable. | |
GPUArray< Scalar3 > | m_wave_vectors |
GPUArray of wave vectors. | |
GPUArray< Scalar2 > | m_fourier_modes |
Fourier modes. | |
GPUArray< Scalar > | m_phases |
Phase shifts. | |
![]() | |
Scalar | m_bias |
std::string | m_cv_name |
Private Member Functions | |
void | calculateFourierModes () |
Helper function to calculate the Fourier modes. |
LamellarOrderParameter | ( | boost::shared_ptr< SystemDefinition > | sysdef, |
const std::vector< Scalar > & | mode, | ||
const std::vector< int3 > & | lattice_vectors, | ||
const std::vector< Scalar > & | phases, | ||
const std::string & | suffix = "" |
||
) |
Constructs the collective variable
sysdef | The system definition |
mode | The per-type coefficients of the Fourier mode |
lattice_vectors | The Miller indices of the mode vector |
phases | The phases for every mode |
suffix | The suffix appended to the log name for this quantity |
|
private |
Helper function to calculate the Fourier modes.
Returns a list of fourier modes (for all wave vectors)
|
protected |
Helper function to update the wave vectors.
Calculate wave vectors.
|
virtual |
Compute the forces for this collective variable. The force that is written to the force arrays must be multiplied by the bias factor.
timestep | The current value of the time step |
Implements CollectiveVariable.
|
inlinevirtual |
Returns the current value of the collective variable
timestep | The current value of the time step |
Implements CollectiveVariable.
Scalar getLogValue | ( | const std::string & | quantity, |
unsigned int | timestep | ||
) |
Returns the value of a specific log quantity.
quantity | The name of the quantity to return the value of |
timestep | The current value of the time step |
|
inline |
Returns the names of provided log quantities.