|
faunus
|
Classes | |
| class | Bonded |
The keys of the intra map are group index and the values is a vector of BondData. More... | |
| class | Confine |
| Confines molecules inside geometric shapes Confine particles to a sub-region of the simulation container. More... | |
| class | Constrain |
| Constrain system using reaction coordinates. More... | |
| class | ContainerOverlap |
| Check if particles are outside the simulation container. More... | |
| class | CustomExternal |
| Custom external potential on molecules. More... | |
| class | CustomGroupGroup |
| Custom energy between pair of molecules. More... | |
| class | DelayedEnergyAccumulator |
Stores a vector of particle pairs and postpones the energy evaluation until operator double() is called. More... | |
| class | EnergyAccumulatorBase |
| Interface for energy accumulators. More... | |
| class | EnergyTerm |
| All energies inherit from this class. More... | |
| class | Ewald |
| Ewald summation reciprocal energy. More... | |
| struct | EwaldData |
| Data class for Ewald k-space calculations. More... | |
| class | EwaldPolicyBase |
| Base class for Ewald k-space updates policies. More... | |
| class | Example2D |
| Oscillating energy on a single particle. More... | |
| class | ExternalAkesson |
| Mean field electric potential from outside rectangular simulation box. More... | |
| class | ExternalPotential |
| Base class for external potentials. More... | |
| class | GroupCutoff |
| Determines if two groups are separated beyond the cutoff distance. More... | |
| class | GroupPairing |
| Computes pair quantity difference for a systen perturbation. More... | |
| class | GroupPairingPolicy |
| Particle pairing to calculate pairẃise interaction using particles' groups internally. More... | |
| class | Hamiltonian |
| Aggregate and sum energy terms. More... | |
| class | InstantEnergyAccumulator |
| A basic accumulator which immediately computes and adds energy of a pair of particles upon addition using the PairEnergy templated class. More... | |
| class | Isobaric |
| Pressure term for NPT ensemble. More... | |
| class | Nonbonded |
| Computes change in the non-bonded energy, assuming pairwise additive energy terms. More... | |
| class | NonbondedBase |
| class | NonbondedCached |
| Computes non-bonded energy contribution from changed particles. More... | |
| class | PairEnergy |
| Provides a fast inlineable interface for non-bonded pair potential energy computation. More... | |
| class | ParticleSelfEnergy |
| Used to add self energies to atoms from i.e. More... | |
| class | Penalty |
sum_of_energy_increments is the total change of updating the energy function. More... | |
| struct | PolicyIonIon |
| Ion-Ion Ewald using periodic boundary conditions (PBC) More... | |
| struct | PolicyIonIonEigen |
| Ion-Ion Ewald with periodic boundary conditions (PBC) using Eigen operations. More... | |
| struct | PolicyIonIonIPBC |
| Ion-Ion Ewald with isotropic periodic boundary conditions (IPBC) More... | |
| struct | PolicyIonIonIPBCEigen |
| Ion-Ion Ewald with isotropic periodic boundary conditions (IPBC) using Eigen operations. More... | |
| class | SASAEnergy |
| class for calculating SASA energies calculating SASA of particles based on change object every step More... | |
| class | SASAEnergyReference |
| class for calculating SASA energies calculating SASA of each particle every step More... | |
Functions | |
| void | to_json (json &j, const EwaldData &d) |
| TEST_CASE ("[Faunus] Ewald - EwaldData") | |
| TEST_CASE ("[Faunus] Ewald - IonIonPolicy") | |
| TEST_CASE ("[Faunus] Ewald - IonIonPolicy Benchmarks") | |
| TEST_CASE ("[Faunus] Energy::Ewald") | |
| TEST_CASE ("Energy::Isobaric") | |
| TEST_CASE_TEMPLATE ("[Faunus] SASAEnergy_updates", EnergyTemplate, SASAEnergyReference, SASAEnergy) | |
| void | from_json (const json &j, GroupCutoff &cutoff) |
| void | to_json (json &j, const GroupCutoff &cutoff) |
| TEST_CASE ("[Faunus] GroupCutoff") | |
| NLOHMANN_JSON_SERIALIZE_ENUM (EwaldData::Policies, { {EwaldData::INVALID, nullptr}, {EwaldData::PBC, "PBC"}, {EwaldData::PBCEigen, "PBCEigen"}, {EwaldData::IPBC, "IPBC"}, {EwaldData::IPBCEigen, "IPBCEigen"}, }) void to_json(json &j | |
| auto | indexComplement (std::integral auto size, const std::ranges::range auto &range) |
| Provides a complementary set of ints with respect to the iota set of a given size. More... | |
| NLOHMANN_JSON_SERIALIZE_ENUM (EnergyAccumulatorBase::Scheme, {{EnergyAccumulatorBase::Scheme::INVALID, nullptr}, {EnergyAccumulatorBase::Scheme::SERIAL, "serial"}, {EnergyAccumulatorBase::Scheme::OPENMP, "openmp"}, {EnergyAccumulatorBase::Scheme::PARALLEL, "parallel"}}) template< class T > concept RequireEnergyAccumulator | |
| template<RequirePairEnergy TPairEnergy> | |
| std::unique_ptr< EnergyAccumulatorBase > | createEnergyAccumulator (const json &j, const TPairEnergy &pair_energy, double initial_value) |
| void | to_json (json &j, const EnergyTerm &base) |
| Converts any energy class to json object. | |
| TEST_CASE ("[Faunus] ExternalPotential") | |
| std::function< double(const Particle &)> | createGouyChapmanPotential (const json &j, const Geometry::Chameleon &geo) |
| TEST_CASE ("[Faunus] Gouy-Chapman") | |
Variables | |
| const EwaldData & | d |
| template<typename T > | |
| concept | RequirePairEnergy |
| std::function< double(const Particle &)> | createGouyChapmanPotential (const json &j, const Geometry::Chameleon &) |
| Returns a functor for a Gouy-Chapman electric potential. More... | |
Several classes (class templates) are used together to allow computation in change of the non-bonded energy upon a MC move.
The energy change is calculated by the Nonbonded class. It internally uses one of the pairing policies to efficiently get all pair interactions affected by the MC move (as described by the Change object).
Pairing policies allow efficient summation of pair energies over the whole system, between groups, inside a group, etc. The pairing policy is optimized for performance in a different execution environment, e.g., sequential or OMP parallelism.
Policies have direct access to the pair interaction energy functor represented by a simple PairEnergy template. Furthermore, the GroupCutoff object is provided to limit free energy computation using a cutoff distance between respective groups.
| auto Faunus::Energy::indexComplement | ( | std::integral auto | size, |
| const std::ranges::range auto & | range | ||
| ) |
Provides a complementary set of ints with respect to the iota set of a given size.
| size | the iota superset contains all integers in the range [0, size) |
| range | an original set of integers (must be sorted) |
| std::function<double(const Particle&)> Faunus::Energy::createGouyChapmanPotential(const json &j, const Geometry::Chameleon &) |
Returns a functor for a Gouy-Chapman electric potential.
Gouy-Chapman equations:
\[ \rho = \sqrt{\frac{2 c_0}{\pi l_B} } \sinh ( \beta \phi_0 e / 2 ) \]
\[ \beta e \phi_0 = 2\mbox{asinh} \left ( \rho \sqrt{\frac{\pi \lambda_B} {2 c_0}} \right ) \]
\[ \Gamma_0=\tanh{ \beta \phi_0 z e / 4 } \]
where lB is the Bjerrum length, kappa the inverse Debye length, and c_0 the bulk salt concentration.
| concept Faunus::Energy::RequirePairEnergy |
1.8.13