/* * SuspendInMoleculeAction.def * * Created on: Aug 26, 2010 * Author: heber */ // all includes and forward declarations necessary for non-integral types below #include #include #include "Atom/AtomicInfo.hpp" #include "Bond/BondInfo.hpp" #include "types.hpp" #include "LinearAlgebra/defs.hpp" #include "Parameters/Validators/DummyValidator.hpp" #include "Parameters/Validators/RangeValidator.hpp" #include "Parameters/Validators/STLVectorValidator.hpp" #include "Parameters/Validators/Ops_Validator.hpp" #include "Parameters/Validators/Specific/BoxLengthValidator.hpp" #include "Parameters/Validators/Specific/VectorZeroOneComponentsValidator.hpp" // i.e. there is an integer with variable name Z that can be found in // ValueStorage by the token "Z" -> first column: int, Z, "Z" // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value #define paramtypes (double)(double)(double)(double)(bool) #define paramtokens ("density")("min-distance")("random-atom-displacement")("random-molecule-displacement")("DoRotate") #define paramdescriptions ("desired density for the total domain, unequal 1.")("minimum distance of water molecules to present atoms")("magnitude of random atom displacement")("magnitude of random molecule displacement")("whether to rotate or not") #define paramdefaults (PARAM_DEFAULT(1.))(PARAM_DEFAULT(1.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(false)) #define paramreferences (density)(mindistance)(RandAtomDisplacement)(RandMoleculeDisplacement)(DoRotate) #define paramvalids \ (RangeValidator< double >(0., 1. - std::numeric_limits::epsilon()) || RangeValidator< double >(1. + std::numeric_limits::epsilon(), std::numeric_limits::max())) \ (BoxLengthValidator()) \ (BoxLengthValidator()) \ (BoxLengthValidator()) \ (DummyValidator< bool >()) #define statetypes (std::vector)(std::vector)(std::vector)(std::vector) #define statereferences (clonedatoms)(clonedbonds)(movedatoms)(MovedToVector) // some defines for all the names, you may use ACTION, STATE and PARAMS #define CATEGORY Fill #define MENUNAME "fill" #define MENUPOSITION 1 #define ACTIONNAME SuspendInMolecule #define TOKEN "suspend-in-molecule" // finally the information stored in the ActionTrait specialization #define DESCRIPTION "\ suspend the simulation domain with already present molecules in the one \ selected molecule (must be sphere- or cube-like) such that in the domain the \ mean density is as specified" #define SHORTFORM "u"