Teem 1.10.0
src/push/forces.c File Reference
#include "push.h"
#include "privatePush.h"
Include dependency graph for forces.c:

Defines

#define SPRING   "spring"
#define GAUSS   "gauss"
#define COULOMB   "coulomb"
#define COTAN   "cotan"
#define ZERO   "zero"
#define _GAUSS(x, sig, cut)
#define _DGAUSS(x, sig, cut)

Functions

void _pushEnergyUnknownEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergyUnknownSupport (const double *parm)
void _pushEnergySpringEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergySpringSupport (const double *parm)
void _pushEnergyGaussEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergyGaussSupport (const double *parm)
void _pushEnergyCoulombEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergyCoulombSupport (const double *parm)
void _pushEnergyCotanEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergyCotanSupport (const double *parm)
void _pushEnergyZeroEval (double *enr, double *frc, double dist, const double *parm)
double _pushEnergyZeroSupport (const double *parm)
pushEnergySpecpushEnergySpecNew ()
void pushEnergySpecSet (pushEnergySpec *ensp, const pushEnergy *energy, const double parm[PUSH_ENERGY_PARM_NUM])
pushEnergySpecpushEnergySpecNix (pushEnergySpec *ensp)
int pushEnergySpecParse (pushEnergySpec *ensp, const char *_str)
int _pushHestEnergyParse (void *ptr, char *str, char err[AIR_STRLEN_HUGE])

Variables

char _pushEnergyTypeStr [PUSH_ENERGY_TYPE_MAX+1][AIR_STRLEN_SMALL]
char _pushEnergyTypeDesc [PUSH_ENERGY_TYPE_MAX+1][AIR_STRLEN_MED]
airEnum _pushEnergyType
airEnumpushEnergyType = &_pushEnergyType
pushEnergy _pushEnergyUnknown
const pushEnergy *const pushEnergyUnknown = &_pushEnergyUnknown
const pushEnergy _pushEnergySpring
const pushEnergy *const pushEnergySpring = &_pushEnergySpring
const pushEnergy _pushEnergyGauss
const pushEnergy *const pushEnergyGauss = &_pushEnergyGauss
const pushEnergy _pushEnergyCoulomb
const pushEnergy *const pushEnergyCoulomb = &_pushEnergyCoulomb
const pushEnergy _pushEnergyCotan
const pushEnergy *const pushEnergyCotan = &_pushEnergyCotan
const pushEnergy _pushEnergyZero
const pushEnergy *const pushEnergyZero = &_pushEnergyZero
const pushEnergy *const pushEnergyAll [PUSH_ENERGY_TYPE_MAX+1]
hestCB _pushHestEnergySpec
hestCBpushHestEnergySpec = &_pushHestEnergySpec

Define Documentation

#define _DGAUSS (   x,
  sig,
  cut 
)
Value:
( \
   x >= sig*cut ? 0            \
   : -exp(-x*x/(2.0*sig*sig))*x/(sig*sig*sig*2.50662827463100050241))
#define _GAUSS (   x,
  sig,
  cut 
)
Value:
( \
   x >= sig*cut ? 0           \
   : exp(-x*x/(2.0*sig*sig))/(sig*2.50662827463100050241))
#define COTAN   "cotan"
#define COULOMB   "coulomb"
#define GAUSS   "gauss"
#define SPRING   "spring"
#define ZERO   "zero"

Function Documentation

void _pushEnergyCotanEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergyCotanSupport ( const double *  parm)
void _pushEnergyCoulombEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergyCoulombSupport ( const double *  parm)
void _pushEnergyGaussEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergyGaussSupport ( const double *  parm)
void _pushEnergySpringEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergySpringSupport ( const double *  parm)
void _pushEnergyUnknownEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergyUnknownSupport ( const double *  parm)
void _pushEnergyZeroEval ( double *  enr,
double *  frc,
double  dist,
const double *  parm 
)
double _pushEnergyZeroSupport ( const double *  parm)
int _pushHestEnergyParse ( void *  ptr,
char *  str,
char  err[AIR_STRLEN_HUGE] 
)
pushEnergySpec* pushEnergySpecNew ( )
pushEnergySpec* pushEnergySpecNix ( pushEnergySpec ensp)
int pushEnergySpecParse ( pushEnergySpec ensp,
const char *  _str 
)
void pushEnergySpecSet ( pushEnergySpec ensp,
const pushEnergy energy,
const double  parm[PUSH_ENERGY_PARM_NUM] 
)

Variable Documentation

char _pushEnergyTypeDesc[PUSH_ENERGY_TYPE_MAX+1][AIR_STRLEN_MED]
Initial value:
 {
  "unknown_energy",
  "Hooke's law-based potential, with a tunable region of attraction",
  "Gaussian potential",
  "Coulomb electrostatic potential, with tunable cut-off",
  "Cotangent-based potential (from Meyer et al. SMI '05)",
  "no energy"
}
char _pushEnergyTypeStr[PUSH_ENERGY_TYPE_MAX+1][AIR_STRLEN_SMALL]
Initial value:
 {
  "(unknown_energy)",
  SPRING,
  GAUSS,
  COULOMB,
  COTAN,
  ZERO
}
Initial value:
 {
  sizeof(pushEnergySpec*),
  "energy specification",
  _pushHestEnergyParse,
  (airMopper)pushEnergySpecNix
}