|
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) |
Public Member Functions inherited from CollectiveVariable | |
| 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. | |
Protected Attributes inherited from CollectiveVariable | |
| 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.
1.8.1.1