| [aa55d0] | 1 | /* | 
|---|
|  | 2 | * SuspendInMoleculeAction.def | 
|---|
|  | 3 | * | 
|---|
|  | 4 | *  Created on: Aug 26, 2010 | 
|---|
|  | 5 | *      Author: heber | 
|---|
|  | 6 | */ | 
|---|
|  | 7 |  | 
|---|
|  | 8 | // all includes and forward declarations necessary for non-integral types below | 
|---|
|  | 9 | #include <limits> | 
|---|
|  | 10 | #include <vector> | 
|---|
|  | 11 | #include "Atom/AtomicInfo.hpp" | 
|---|
|  | 12 | #include "Bond/BondInfo.hpp" | 
|---|
|  | 13 | #include "types.hpp" | 
|---|
|  | 14 |  | 
|---|
|  | 15 | #include "LinearAlgebra/defs.hpp" | 
|---|
|  | 16 | #include "Parameters/Validators/DummyValidator.hpp" | 
|---|
|  | 17 | #include "Parameters/Validators/RangeValidator.hpp" | 
|---|
|  | 18 | #include "Parameters/Validators/STLVectorValidator.hpp" | 
|---|
| [2440ce] | 19 | #include "Parameters/Validators/Ops_Validator.hpp" | 
|---|
| [aa55d0] | 20 | #include "Parameters/Validators/Specific/BoxLengthValidator.hpp" | 
|---|
|  | 21 | #include "Parameters/Validators/Specific/VectorZeroOneComponentsValidator.hpp" | 
|---|
|  | 22 |  | 
|---|
|  | 23 | // i.e. there is an integer with variable name Z that can be found in | 
|---|
|  | 24 | // ValueStorage by the token "Z" -> first column: int, Z, "Z" | 
|---|
|  | 25 | // "undefine" if no parameters are required, use (NOPARAM_DEFAULT) for each (undefined) default value | 
|---|
|  | 26 | #define paramtypes (double)(double)(double)(double)(bool) | 
|---|
|  | 27 | #define paramtokens ("density")("min-distance")("random-atom-displacement")("random-molecule-displacement")("DoRotate") | 
|---|
| [2440ce] | 28 | #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") | 
|---|
| [aa55d0] | 29 | #define paramdefaults (PARAM_DEFAULT(1.))(PARAM_DEFAULT(1.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(0.))(PARAM_DEFAULT(false)) | 
|---|
|  | 30 | #define paramreferences (density)(mindistance)(RandAtomDisplacement)(RandMoleculeDisplacement)(DoRotate) | 
|---|
|  | 31 | #define paramvalids \ | 
|---|
| [2440ce] | 32 | (RangeValidator< double >(0., 1. - std::numeric_limits<double>::epsilon()) || RangeValidator< double >(1. + std::numeric_limits<double>::epsilon(), std::numeric_limits<double>::max())) \ | 
|---|
| [aa55d0] | 33 | (BoxLengthValidator()) \ | 
|---|
|  | 34 | (BoxLengthValidator()) \ | 
|---|
|  | 35 | (BoxLengthValidator()) \ | 
|---|
|  | 36 | (DummyValidator< bool >()) | 
|---|
|  | 37 |  | 
|---|
|  | 38 | #define statetypes (std::vector<AtomicInfo>)(std::vector<BondInfo>)(std::vector<AtomicInfo>)(std::vector<Vector>) | 
|---|
|  | 39 | #define statereferences (clonedatoms)(clonedbonds)(movedatoms)(MovedToVector) | 
|---|
|  | 40 |  | 
|---|
|  | 41 | // some defines for all the names, you may use ACTION, STATE and PARAMS | 
|---|
|  | 42 | #define CATEGORY Fill | 
|---|
|  | 43 | #define MENUNAME "fill" | 
|---|
|  | 44 | #define MENUPOSITION 1 | 
|---|
|  | 45 | #define ACTIONNAME SuspendInMolecule | 
|---|
|  | 46 | #define TOKEN "suspend-in-molecule" | 
|---|
|  | 47 |  | 
|---|
|  | 48 | // finally the information stored in the ActionTrait specialization | 
|---|
|  | 49 | #define DESCRIPTION "\ | 
|---|
|  | 50 | suspend the simulation domain with already present molecules in the one \ | 
|---|
|  | 51 | selected molecule (must be sphere- or cube-like) such that in the domain the \ | 
|---|
|  | 52 | mean density is as specified" | 
|---|
|  | 53 | #define SHORTFORM "u" | 
|---|