faunus
Todo List
Class Faunus::analysis::ChargeFluctuations
atom_mean_charges could be calculated from atom_histograms
Member Faunus::analysis::ChargeFluctuations::ChargeFluctuations (const json &j, const Space &spc)
replace mol_iter with simple molid integer
Class Faunus::analysis::MultipoleDistribution
Add option to use charge center instead of mass center
Class Faunus::analysis::PairAngleFunction
Is this class justified? Messy file handling
Class Faunus::analysis::VirtualTranslate
Does this work with Ewald summation? k-vectors must be refreshed.
Class Faunus::analysis::Voronota
Currently only SASA information is reported in the output. Add more information!
Class Faunus::analysis::WidomInsertion
Migrate absolute_z_coords into new MoleculeInserter policy
Class Faunus::Average< value_type, counter_type >
replace static assert w.
Class Faunus::AverageStdev< value_type, counter_type >
inherit from Average
Member Faunus::CellList::AbstractImmutableCellList< TContainerType, TGridType >::getCells () const =0
refactor as an iterator
Class Faunus::CellList::CellListDifference< TCellListMinuend, TCellListSubtrahend >
Allow cache invalidation when underlying cell lists change
Class Faunus::CellList::Grid::PeriodicBoundaryGrid< TGridType >
Currently only full or none PBC is supperted. To support geometries like a slit, more fine distingtion is needed.
Class Faunus::Decorrelation< value_type, counter_type >
Bundle current vectors into single vector of struct; unittests; check correctness
Class Faunus::Energy::Bonded
Optimize.
Class Faunus::Energy::Confine
enum class; get rid of map; is non-const space needed?
Class Faunus::Energy::EnergyAccumulatorBase
See https://www.youtube.com/watch?v=3LsRYnRDSRA for a bizarre example where a custom struct Tpair { const Particle &first, second; }; outperforms std::pair due to missed compiler optimization.
Class Faunus::Energy::Ewald
energy() currently has the responsibility to update k-vectors.
Class Faunus::Energy::ExternalAkesson
Split this into two classes; one with a static rho, and a derived that updates rho
Class Faunus::Energy::ExternalPotential
The dN check is inefficient as it calculates the external potential on all particles.
Member Faunus::Energy::Hamiltonian::Hamiltonian (Space &spc, const json &j)
Move addEwald to Nonbonded as it now has access to Hamiltonian and can add
Member Faunus::Energy::Nonbonded< TPairEnergy, TPairingPolicy >::force (std::vector< Point > &forces) override
A stub. Change to reflect only active particle, see Space::activeParticles().
Member Faunus::Energy::Penalty::sync (EnergyTerm *other, const Change &change) override
: this doubles the MPI communication
Member Faunus::Energy::Penalty::~Penalty () override
Foul to let constructor be responsible for i/o...
Member Faunus::Energy::PolicyIonIon::updateComplex (EwaldData &data, const Space::GroupVector &groups) const override
Add OpenMP pragma to first loop
Class Faunus::Geometry::Chameleon
Implement unit tests
Member Faunus::Geometry::rotate (iterator begin, iterator end, const Eigen::Quaterniond &quaternion, BoundaryFunction apply_boundary=[](auto &) {}, const Point &shift=Point::Zero())
Currently both quaternion and rotation matrix are passed, but one of them should be enough
Class Faunus::Legendre< T, max_order, use_table >
Benchmark use_table
Class Faunus::MetropolisMonteCarlo
The class has too many responsibilities, particularly in setting up the system.
Member Faunus::MetropolisMonteCarlo::restore (const json &j)
Too many responsibilities; tidy up!
Member Faunus::MetropolisMonteCarlo::sweep ()
using weight to mark as move as static is ugly
Class Faunus::move::ConformationSwap
Add feature to align molecule on top of an exiting one
Class Faunus::move::FindCluster
This is a break-out from Cluster and further separation of functionality could be made
Member Faunus::move::LangevinVelocityVerlet::step (PointVector &velocities, PointVector &forces) override
Splitting scheme still hard-coded to 'BAOAB'
Class Faunus::move::Move
Privatize and rename members
Class Faunus::move::SpeciationMove
Split atom-swap functionality to separate helper class
Member Faunus::move::SpeciationMove::swapParticleProperties (Particle &particle, int new_atomid)
This could make use of policies to customize how particles should be updated. Split to helper class.
Class Faunus::move::TranslateRotate
under construction
Class Faunus::ordered_pair< T >
Add std::pair copy operator
Class Faunus::pairpotential::BondData
Memory inefficient to store energy and force functors. Virtual functions?
Class Faunus::pairpotential::CigarWithCigar< PatchPotential, CylinderPotential >
Energy calculation badly needs refactoring!
Member Faunus::pairpotential::CosAttract::operator() (const Particle &, const Particle &, double squared_distance, const Point &) const override
The function x(c,r2,rc) defined herein could be approximated by a series expansion for r2=rcwc2.
Class Faunus::pairpotential::FunctorPotential
to_json should retrieve info from potentials instead of merely passing input
Class Faunus::pairpotential::Multipole
Only dipole-dipole interactions are currently enabled
Class Faunus::pairpotential::PairPotential
Self-energies should be handled by a separate interaction class and is stored here only to be able to retrieve them later on. The main reason for this is convenience as we in this way can register the self energy during processing of the pair potential input.
Class Faunus::pairpotential::SplinedPotential
Add force
Class Faunus::Particle
: memory model for extended properties not optimal
Member Faunus::Particle::rotate (const Eigen::Quaterniond &quaternion, const Eigen::Matrix3d &rotation_matrix)
Only one of the above should be enough
Class Faunus::ParticlePropertyBase
Is this really needed?
Member Faunus::ParticlePropertyBase::rotate (const Eigen::Quaterniond &q, const Eigen::Matrix3d &)
Inefficient to pass both Quaternion and rotation matrix.
Class Faunus::QuaternionRotate
Get rotate tensors using quaternion
Class Faunus::ReactionCoordinate::MoleculeProperty
Refactor so that each scheme is a derived class implementing a virtual energy function instead of the std::function object
Class Faunus::ReactionData
  • [x] Enable canonic and reservoir_size
  • [ ] Enable reservoir size to be given as molarity and number
  • [ ] Merge products and reactant structures using signed stoichiometric numbers
  • [x] reservoir_size should ideally be associated with an implicit molecule
  • [ ] direction should be a member of ReactionData due to possible data races
Class Faunus::RowMajorOffset< dim, Tindices >
this can be used to construct an N-dimensional matrix class
Class Faunus::SASA::SASACellList< CellList >

update function does perhaps unnecessary containsMember(Member&) checks

create a wrapper class for cell_list so that the Space dependence is in there and not here

Class Faunus::SingleUseJSON
This class should be retired and handled by JSON schema instead
Member Faunus::Space::updateInternalState (const Change &change)
Under construction and currently not in use
Member Faunus::Space::updateParticles (const iterator begin, const iterator end, ParticleVector::iterator destination, copy_operation copy_function=[](const Particle &src, Particle &dst) { dst=src;})
Since Space::groups is ordered, binary search could be used to filter
Namespace Faunus::SpheroCylinder
cleanup and split into smaller functions.
Member Faunus::SpheroCylinder::psc_intersect (const Cigar &particle1, const Cigar &particle2, const Point &r_cm, std::array< double, 5 > &intersections, double cutoff_squared)
Add documentation and split into smaller parts(!)
Member Faunus::Table2D< Tx, Ty >::load (const std::string &filename)
Implement end bin compensation as in the save() function when loading HISTOGRAMs
Class Faunus::Table< Tcoeff, base >
This really needs documentation and general refactoring!
Class Faunus::Tabulate::Andrea< T >
Hide data and functions; clean up r vs r2 mess.
Class Faunus::Tensor
add documentation
Member Faunus::Tensor::Tensor (double, double, double, double, double, double)
explain input
Class Faunus::TranslationalEntropy
  • [ ] Move to Energy namespace?
  • [ ] Verify with volume fluctuations which would make Energy::Isobaric redundant