Continuum Membrane 719025a62b1e384a6ff80e2f2a223ef4012153dc
Loading...
Searching...
No Matches
Public Attributes | List of all members
Param Struct Reference

Contains simulation parameters and physical constants. More...

#include <Parameters.hpp>

Public Attributes

bool VERBOSE_MODE = true
 Whether to print verbose output during simulation.
 
int maxIterations = 1E5
 Max number of iteration.
 
std::string restartInputFile = ""
 Optional checkpoint file to restart from.
 
std::string checkpointOutputFile = "slimed_restart.chk"
 Checkpoint file written during minimization.
 
int checkpointOutputInterval = 1000
 Iteration interval for checkpoint writes; <=0 disables checkpointing.
 
double kCurv = 83.4
 Bending modulus i.e. curvature constant (kc)
 
double uSurf = 250.0
 Surface area constraint i.e. surface constant (us)
 
double uVol = 0.0
 Volume constraint i.e. volume constant (uv)
 
double kReg = 83.4
 Coefficient of the regularization constraint (k)
 
double kSpring
 Spring constant for insertion zones (K)
 
bool setRelaxAreaToDefault = false
 true to set area0 equal to area of starting config
 
double area0
 Target area for membrane (S0)
 
double area
 Total area of the membrane (S)
 
double vol0
 Target volume for membrane (V0)
 
double vol
 Total volume of the membrane (V)
 
double insertCurv
 Spontaneous curvature of insertions (C0)
 
double spontCurv
 Spontaneous curvature of membrane (c0)
 
double sideX = 100.0
 X-axis length for flat membrane.
 
double sideY = 100.0
 Y-axis length for flat membrane.
 
double radius = 25.0
 Radius for spherical membrane.
 
double lFace = 5.0
 lFace
 
int nFaceX = -1
 Number of faces (edges) along X axis for flat membrane.
 
int nFaceY = -1
 Number of faces (edges) along Y axis for flat membrane.
 
double dFaceX
 Initial actual face side length along X axis for flat membrane.
 
double dFaceY
 Initial actual face side length along Y axis for flat membrane.
 
double meanL
 Mean length of edges after subdivision.
 
double sigma = 0.0
 Noise level for vertex positions.
 
int subDivideTimes
 Number of times to subdivide each edge.
 
bool isInsertionAreaConstraint = false
 Whether to apply area constraint to insertions.
 
bool isAdditiveScheme = false
 Whether to use additive scheme for constraints.
 
bool isGlobalConstraint = true
 Whether to apply global constraint across entire membrane.
 
double elementTriangleArea0
 Target area for individual triangles.
 
int gaussQuadratureN = 2
 Number of Gaussian quadrature points to use.
 
Matrix VWU
 (N,3) matrix of vertex coordinates and weights
 
Matrix gaussQuadratureCoeff
 (N,1) matrix of Gaussian quadrature coefficients
 
std::vector< MatrixshapeFunctions
 List of shape functions for each triangle.
 
SubdivisionMatrix subMatrix
 Subdivision matrix for irregular patches.
 
BoundaryType boundaryCondition = BoundaryType::Periodic
 Type of boundary condition ("Fixed", "Periodic", "Free")
 
bool usingNCG = true
 Whether to use nonlinear conjugate gradient method.
 
bool isNCGstuck = false
 Whether NCG method has gotten stuck.
 
double deltaEnergyConverge = 1e-5
 Convergence criteria for total energy.
 
double deltaForceScaleConverge = 1e-5
 Convergence criteria for max force scale.
 
double gamaShape = 0.2
 Shape deformation coefficient.
 
double gamaArea = 0.2
 Area deformation coefficient.
 
bool usingRpi = true
 Whether to use R-pi adaptive method for regularization energy;.
 
bool xyzOutput = true
 Whether to output XYZ coordinates of vertices.
 
bool meshpointOutput = true
 Whether to output meshpoints.
 
bool isEnergyHarmonicBondIncluded = false
 Whether to include energy of spline points.
 
std::vector< MatrixscaffoldingPoints
 List of spline points.
 
std::vector< int > scaffoldingPoints_correspondingVertexIndex
 Corresponding vertex indices for spline points.
 
double scaffoldingSphereRaidus = 50.0
 spherical radius of the scaffolding lattice cap
 
double springConst = 4.5
 Spring constant for harmonic bond potential.
 
double springConstScaler = 1.31607401
 Spring constant scaler per iteration interval.
 
int springConstScalingInterv = 200
 Iteration interval for spring constant scaling.
 
int springConstUpperBound = 1000.0
 Max spring constant to stop scaling of spring constant.
 
int propagateScaffoldingInterv = 7
 Iteration interval for repositioning scaffolding based on energy and force.
 
int propagateScaffoldingNstep = 100
 Number of steps every time propagating scaffolding.
 
double splinePointsZcoordScaling = 0.0
 
double lbond = 9.0
 Harminc bond length in nm.
 
double relaxLengthRatioApproximation = 1.0
 ratio of relax length to cap length approximation
 
double scaffoldingZeroPlaneZ = 0.0
 Height of the flat membrane plane around the Gag cap.
 
std::string scaffoldingFileName = ""
 
bool isGagScaffoldingEnergyIncluded = false
 Whether to include Gag-specific internal scaffold energy.
 
std::string gagReferenceStateFileName = ""
 Extracted selected/json/*.dat file used as Gag reference geometry.
 
std::string gagReactionFileName = ""
 NERDSS .inp file used to identify Gag reaction blocks.
 
bool isIdealizedProteinLatticeEnergyIncluded = false
 Whether to include idealized per-instance protein lattice energy.
 
std::string idealizedProteinLatticeFileName = ""
 JSON / .dat file containing the initialized idealized lattice state.
 
double gagKsigma = 0.0
 Spring constant for COM-COM bond length term.
 
double gagKtheta = 0.0
 Spring constant for COM-COM bond angle term.
 
double gagKphi = 0.0
 Spring constant for COM-graph torsion term mapped from phi.
 
double gagKomega = 0.0
 Spring constant for COM-graph torsion term mapped from omega.
 
double gagFiniteDifferenceStep = 1.0e-4
 Step size used for scaffold finite-difference gradients.
 
double gagPropagationStepSize = 1.0e-6
 Step size used when propagating the scaffold with Gag forces.
 
int gagPreRelaxSteps = 200
 Number of Gag-only pre-relaxation steps before membrane coupling.
 
double timeStep = 0.1
 
double diffConst = 0.01
 
double KBT = 4.17
 
unsigned int randomSeed = 42
 random seed used in normal distribution
 
bool surfacepointOutput = true
 whether to output surface point file
 
bool thermalFluctuationEnabled = false
 Enable Metropolis thermal trial moves during minimization.
 
bool thermalFluctuationPureMMC = false
 Run pure Metropolis Monte Carlo trial moves without NCG.
 
int thermalFluctuationInterval = 50
 Iteration interval between thermal trial moves.
 
double thermalFluctuationTemperatureKelvin = 298.0
 Effective thermodynamic temperature in Kelvin.
 
double thermalFluctuationMinTemperatureKelvin = 298.0
 Lower bound for annealed temperature in Kelvin.
 
double thermalFluctuationCoolingRate = 1.0
 Multiplicative cooling rate after each thermal trial.
 
double thermalFluctuationStepScale = 0.02
 Gaussian displacement std. dev. as a fraction of lFace.
 
bool isInsertionIncluded = false
 
std::vector< std::vector< int > > insertionPatch
 
Energy energy
 
Energy energyPrev
 
DeformationCount deformationCount
 

Detailed Description

Contains simulation parameters and physical constants.

The Param struct stores a variety of parameters and physical constants that are used to initialize and run a membrane simulation. This includes properties like the membrane size, shape, and subdivision, as well as boundary conditions, time step, and diffusion constant. Many of these variables have default values but can be customized by changing the corresponding member variables in a Param object.

Note that some variables in this struct are deprecated or unused and should not be relied upon for correct behavior of the simulation. These variables may be removed or modified in future versions of the code.

Member Data Documentation

◆ area

double Param::area

Total area of the membrane (S)

◆ area0

double Param::area0

Target area for membrane (S0)

◆ boundaryCondition

BoundaryType Param::boundaryCondition = BoundaryType::Periodic

Type of boundary condition ("Fixed", "Periodic", "Free")

◆ checkpointOutputFile

std::string Param::checkpointOutputFile = "slimed_restart.chk"

Checkpoint file written during minimization.

◆ checkpointOutputInterval

int Param::checkpointOutputInterval = 1000

Iteration interval for checkpoint writes; <=0 disables checkpointing.

◆ deformationCount

DeformationCount Param::deformationCount

◆ deltaEnergyConverge

double Param::deltaEnergyConverge = 1e-5

Convergence criteria for total energy.

◆ deltaForceScaleConverge

double Param::deltaForceScaleConverge = 1e-5

Convergence criteria for max force scale.

◆ dFaceX

double Param::dFaceX

Initial actual face side length along X axis for flat membrane.

◆ dFaceY

double Param::dFaceY

Initial actual face side length along Y axis for flat membrane.

◆ diffConst

double Param::diffConst = 0.01

◆ elementTriangleArea0

double Param::elementTriangleArea0

Target area for individual triangles.

◆ energy

Energy Param::energy

◆ energyPrev

Energy Param::energyPrev

◆ gagFiniteDifferenceStep

double Param::gagFiniteDifferenceStep = 1.0e-4

Step size used for scaffold finite-difference gradients.

◆ gagKomega

double Param::gagKomega = 0.0

Spring constant for COM-graph torsion term mapped from omega.

◆ gagKphi

double Param::gagKphi = 0.0

Spring constant for COM-graph torsion term mapped from phi.

◆ gagKsigma

double Param::gagKsigma = 0.0

Spring constant for COM-COM bond length term.

◆ gagKtheta

double Param::gagKtheta = 0.0

Spring constant for COM-COM bond angle term.

◆ gagPreRelaxSteps

int Param::gagPreRelaxSteps = 200

Number of Gag-only pre-relaxation steps before membrane coupling.

◆ gagPropagationStepSize

double Param::gagPropagationStepSize = 1.0e-6

Step size used when propagating the scaffold with Gag forces.

◆ gagReactionFileName

std::string Param::gagReactionFileName = ""

NERDSS .inp file used to identify Gag reaction blocks.

◆ gagReferenceStateFileName

std::string Param::gagReferenceStateFileName = ""

Extracted selected/json/*.dat file used as Gag reference geometry.

◆ gamaArea

double Param::gamaArea = 0.2

Area deformation coefficient.

◆ gamaShape

double Param::gamaShape = 0.2

Shape deformation coefficient.

◆ gaussQuadratureCoeff

Matrix Param::gaussQuadratureCoeff

(N,1) matrix of Gaussian quadrature coefficients

◆ gaussQuadratureN

int Param::gaussQuadratureN = 2

Number of Gaussian quadrature points to use.

◆ idealizedProteinLatticeFileName

std::string Param::idealizedProteinLatticeFileName = ""

JSON / .dat file containing the initialized idealized lattice state.

◆ insertCurv

double Param::insertCurv

Spontaneous curvature of insertions (C0)

◆ insertionPatch

std::vector<std::vector<int> > Param::insertionPatch

◆ isAdditiveScheme

bool Param::isAdditiveScheme = false

Whether to use additive scheme for constraints.

◆ isEnergyHarmonicBondIncluded

bool Param::isEnergyHarmonicBondIncluded = false

Whether to include energy of spline points.

◆ isGagScaffoldingEnergyIncluded

bool Param::isGagScaffoldingEnergyIncluded = false

Whether to include Gag-specific internal scaffold energy.

◆ isGlobalConstraint

bool Param::isGlobalConstraint = true

Whether to apply global constraint across entire membrane.

◆ isIdealizedProteinLatticeEnergyIncluded

bool Param::isIdealizedProteinLatticeEnergyIncluded = false

Whether to include idealized per-instance protein lattice energy.

◆ isInsertionAreaConstraint

bool Param::isInsertionAreaConstraint = false

Whether to apply area constraint to insertions.

◆ isInsertionIncluded

bool Param::isInsertionIncluded = false

◆ isNCGstuck

bool Param::isNCGstuck = false

Whether NCG method has gotten stuck.

◆ KBT

double Param::KBT = 4.17

◆ kCurv

double Param::kCurv = 83.4

Bending modulus i.e. curvature constant (kc)

◆ kReg

double Param::kReg = 83.4

Coefficient of the regularization constraint (k)

◆ kSpring

double Param::kSpring

Spring constant for insertion zones (K)

◆ lbond

double Param::lbond = 9.0

Harminc bond length in nm.

◆ lFace

double Param::lFace = 5.0

lFace

◆ maxIterations

int Param::maxIterations = 1E5

Max number of iteration.

◆ meanL

double Param::meanL

Mean length of edges after subdivision.

◆ meshpointOutput

bool Param::meshpointOutput = true

Whether to output meshpoints.

◆ nFaceX

int Param::nFaceX = -1

Number of faces (edges) along X axis for flat membrane.

◆ nFaceY

int Param::nFaceY = -1

Number of faces (edges) along Y axis for flat membrane.

◆ propagateScaffoldingInterv

int Param::propagateScaffoldingInterv = 7

Iteration interval for repositioning scaffolding based on energy and force.

◆ propagateScaffoldingNstep

int Param::propagateScaffoldingNstep = 100

Number of steps every time propagating scaffolding.

◆ radius

double Param::radius = 25.0

Radius for spherical membrane.

◆ randomSeed

unsigned int Param::randomSeed = 42

random seed used in normal distribution

◆ relaxLengthRatioApproximation

double Param::relaxLengthRatioApproximation = 1.0

ratio of relax length to cap length approximation

◆ restartInputFile

std::string Param::restartInputFile = ""

Optional checkpoint file to restart from.

◆ scaffoldingFileName

std::string Param::scaffoldingFileName = ""

◆ scaffoldingPoints

std::vector<Matrix> Param::scaffoldingPoints

List of spline points.

◆ scaffoldingPoints_correspondingVertexIndex

std::vector<int> Param::scaffoldingPoints_correspondingVertexIndex

Corresponding vertex indices for spline points.

◆ scaffoldingSphereRaidus

double Param::scaffoldingSphereRaidus = 50.0

spherical radius of the scaffolding lattice cap

◆ scaffoldingZeroPlaneZ

double Param::scaffoldingZeroPlaneZ = 0.0

Height of the flat membrane plane around the Gag cap.

◆ setRelaxAreaToDefault

bool Param::setRelaxAreaToDefault = false

true to set area0 equal to area of starting config

◆ shapeFunctions

std::vector<Matrix> Param::shapeFunctions

List of shape functions for each triangle.

◆ sideX

double Param::sideX = 100.0

X-axis length for flat membrane.

◆ sideY

double Param::sideY = 100.0

Y-axis length for flat membrane.

◆ sigma

double Param::sigma = 0.0

Noise level for vertex positions.

◆ splinePointsZcoordScaling

double Param::splinePointsZcoordScaling = 0.0

◆ spontCurv

double Param::spontCurv

Spontaneous curvature of membrane (c0)

◆ springConst

double Param::springConst = 4.5

Spring constant for harmonic bond potential.

◆ springConstScaler

double Param::springConstScaler = 1.31607401

Spring constant scaler per iteration interval.

◆ springConstScalingInterv

int Param::springConstScalingInterv = 200

Iteration interval for spring constant scaling.

◆ springConstUpperBound

int Param::springConstUpperBound = 1000.0

Max spring constant to stop scaling of spring constant.

◆ subDivideTimes

int Param::subDivideTimes

Number of times to subdivide each edge.

◆ subMatrix

SubdivisionMatrix Param::subMatrix

Subdivision matrix for irregular patches.

◆ surfacepointOutput

bool Param::surfacepointOutput = true

whether to output surface point file

◆ thermalFluctuationCoolingRate

double Param::thermalFluctuationCoolingRate = 1.0

Multiplicative cooling rate after each thermal trial.

◆ thermalFluctuationEnabled

bool Param::thermalFluctuationEnabled = false

Enable Metropolis thermal trial moves during minimization.

◆ thermalFluctuationInterval

int Param::thermalFluctuationInterval = 50

Iteration interval between thermal trial moves.

◆ thermalFluctuationMinTemperatureKelvin

double Param::thermalFluctuationMinTemperatureKelvin = 298.0

Lower bound for annealed temperature in Kelvin.

◆ thermalFluctuationPureMMC

bool Param::thermalFluctuationPureMMC = false

Run pure Metropolis Monte Carlo trial moves without NCG.

◆ thermalFluctuationStepScale

double Param::thermalFluctuationStepScale = 0.02

Gaussian displacement std. dev. as a fraction of lFace.

◆ thermalFluctuationTemperatureKelvin

double Param::thermalFluctuationTemperatureKelvin = 298.0

Effective thermodynamic temperature in Kelvin.

◆ timeStep

double Param::timeStep = 0.1

◆ usingNCG

bool Param::usingNCG = true

Whether to use nonlinear conjugate gradient method.

◆ usingRpi

bool Param::usingRpi = true

Whether to use R-pi adaptive method for regularization energy;.

◆ uSurf

double Param::uSurf = 250.0

Surface area constraint i.e. surface constant (us)

◆ uVol

double Param::uVol = 0.0

Volume constraint i.e. volume constant (uv)

◆ VERBOSE_MODE

bool Param::VERBOSE_MODE = true

Whether to print verbose output during simulation.

◆ vol

double Param::vol

Total volume of the membrane (V)

◆ vol0

double Param::vol0

Target volume for membrane (V0)

◆ VWU

Matrix Param::VWU

(N,3) matrix of vertex coordinates and weights

◆ xyzOutput

bool Param::xyzOutput = true

Whether to output XYZ coordinates of vertices.


The documentation for this struct was generated from the following file: