ClusterAbstract
public class ClusterWheatleyMultibodyBD extends ClusterWheatleySoftBD
Modifier and Type | Field | Description |
---|---|---|
protected ClusterWheatleyMultibodyBD |
clusterWheatleyBDBD |
|
protected boolean |
doMulti |
|
protected boolean |
doTotal |
|
protected MayerFunctionNonAdditive[] |
fMulti |
|
protected MayerFunctionNonAdditive |
fNonAdditive |
|
protected java.math.BigDecimal[] |
fQmulti |
|
protected int[] |
moleculeIndices |
|
protected MoleculeArrayList |
molecules |
|
protected int |
precisionLimit |
|
protected double[] |
r2 |
|
protected double |
rCut2 |
Constructor | Description |
---|---|
ClusterWheatleyMultibodyBD(int nPoints,
MayerFunction f,
MayerFunctionNonAdditive[] fMulti,
int precision) |
|
ClusterWheatleyMultibodyBD(int nPoints,
MayerFunction f,
MayerFunctionNonAdditive fNonAdditive,
int precision) |
|
ClusterWheatleyMultibodyBD(int nPoints,
MayerFunction f,
MayerFunctionNonAdditive fNonAdditive,
MayerFunctionNonAdditive[] fMulti,
int precision) |
Modifier and Type | Method | Description |
---|---|---|
protected void |
calcFullFQ(BoxCluster box) |
This calculates all FQ values given that the entries for pairs have
already been populated.
|
void |
calcValue(BoxCluster box) |
Returns the cluster value for the given configuration.
|
ClusterAbstract |
makeCopy() |
Returns another instance of an identical cluster (shallow copy).
|
void |
setDoTotal(boolean newDoTotal) |
|
void |
setPrecisionLimit(int newLimit) |
|
void |
setRCut(double newRCut) |
pointCount, setDoCaching, setTemperature, updateF, value
protected final MayerFunctionNonAdditive[] fMulti
protected final MayerFunctionNonAdditive fNonAdditive
protected final int[] moleculeIndices
protected final double[] r2
protected final MoleculeArrayList molecules
protected boolean doMulti
protected boolean doTotal
protected double rCut2
protected final java.math.BigDecimal[] fQmulti
protected ClusterWheatleyMultibodyBD clusterWheatleyBDBD
protected int precisionLimit
public ClusterWheatleyMultibodyBD(int nPoints, MayerFunction f, MayerFunctionNonAdditive[] fMulti, int precision)
nPoints
- number of pointsf
- pair Mayer functionfMulti
- array of non-additive Mayer functions. fMulti[3] is the
3-body Mayer function (exp(-beta*deltaU3)-1), fMulti[4] is the
4-body Mayer function, etc. fMulti null entries will be
ignored and the array need to not be of size equal to nPoints.
If only 3-body Mayer function is available, then fMulti can be
of length 4 (0,1,2,3).precision
- number of digits used for internal computation and storagepublic ClusterWheatleyMultibodyBD(int nPoints, MayerFunction f, MayerFunctionNonAdditive fNonAdditive, int precision)
nPoints
- number of pointsf
- pair Mayer functionfNonAdditive
- Mayer function that returns non-additive value for
any number of molecules.public ClusterWheatleyMultibodyBD(int nPoints, MayerFunction f, MayerFunctionNonAdditive fNonAdditive, MayerFunctionNonAdditive[] fMulti, int precision)
nPoints
- number of pointsf
- pair Mayer functionfNonAdditive
- Mayer function that returns non-additive value for
any number of molecules.fMulti
- array of non-additive Mayer functions. fMulti[3] is the
3-body Mayer function (exp(-beta*deltaU3)-1), fMulti[4] is the
4-body Mayer function, etc. fMulti null entries will be
ignored and the array need to not be of size equal to nPoints.
If only 3-body Mayer function is available, then fMulti can be
of length 4 (0,1,2,3).precision
- if the magnitude of the computed cluster value is less than
the value will be recomputed using BigDecimal. Use tol=0 to
prevent BigDecimal computations.public void setPrecisionLimit(int newLimit)
public ClusterAbstract makeCopy()
ClusterAbstract
makeCopy
in interface ClusterAbstract
makeCopy
in class ClusterWheatleySoftBD
public void setDoTotal(boolean newDoTotal)
public void setRCut(double newRCut)
public void calcValue(BoxCluster box)
ClusterWheatleySoftBD
calcValue
in class ClusterWheatleySoftBD
protected void calcFullFQ(BoxCluster box)
ClusterWheatleySoftBD
calcFullFQ
in class ClusterWheatleySoftBD