Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfPotential.h File Reference
#include "tf_platform.h"
#include "tf_fptype.h"
#include <io/tf_io.h>
#include <limits>
#include <utility>
#include <vector>
Include dependency graph for tfPotential.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  TissueForge::Potential
 A Potential object is a compiled interpolation of a given function. The Universe applies potentials to particles to calculate the net force on them. More...
 

Namespaces

namespace  TissueForge
 Include Python header, disable linking to pythonX_d.lib on Windows in debug mode.
 

Macros

#define potential_degree   5
 
#define potential_chunk   (potential_degree+3)
 
#define potential_ivalsa   1
 
#define potential_ivalsb   10
 
#define potential_N   100
 
#define potential_align   64
 
#define potential_ivalsmax   3048
 
#define potential_escale   (0.079577471545947667882)
 

Typedefs

typedef void(* TissueForge::PotentialEval_ByParticle) (struct Potential *p, struct Particle *part_i, FPTYPE *dx, FPTYPE r2, FPTYPE *e, FPTYPE *f)
 Potential function on a particle.
 
typedef void(* TissueForge::PotentialEval_ByParticles) (struct Potential *p, struct Particle *part_i, struct Particle *part_j, FPTYPE *dx, FPTYPE r2, FPTYPE *e, FPTYPE *f)
 Pair potential function.
 
typedef void(* TissueForge::PotentialEval_ByParticles3) (struct Potential *p, struct Particle *part_i, struct Particle *part_j, struct Particle *part_k, FPTYPE ctheta, FPTYPE *e, FPTYPE *fi, FPTYPE *fk)
 Like PotentialEval_ByParticles, but with three particles.
 
typedef void(* TissueForge::PotentialEval_ByParticles4) (struct Potential *p, struct Particle *part_i, struct Particle *part_j, struct Particle *part_k, struct Particle *part_l, FPTYPE cphi, FPTYPE *e, FPTYPE *fi, FPTYPE *fl)
 Like PotentialEval_ByParticles, but with four particles.
 
typedef struct Potential *(* TissueForge::PotentialCreate) (struct Potential *partial_potential, struct ParticleType *a, struct ParticleType *b)
 
typedef void(* TissueForge::PotentialClear) (struct Potential *p)
 Callback issues when potential is cleared.
 

Enumerations

enum  TissueForge::PotentialFlags {
  POTENTIAL_NONE = 0 , POTENTIAL_LJ126 = 1 << 0 , POTENTIAL_EWALD = 1 << 1 , POTENTIAL_COULOMB = 1 << 2 ,
  POTENTIAL_SINGLE = 1 << 3 , TissueForge::POTENTIAL_R2 = 1 << 4 , TissueForge::POTENTIAL_R = 1 << 5 , TissueForge::POTENTIAL_ANGLE = 1 << 6 ,
  TissueForge::POTENTIAL_HARMONIC = 1 << 7 , POTENTIAL_DIHEDRAL = 1 << 8 , TissueForge::POTENTIAL_SWITCH = 1 << 9 , POTENTIAL_REACTIVE = 1 << 10 ,
  TissueForge::POTENTIAL_SCALED = 1 << 11 , TissueForge::POTENTIAL_SHIFTED = 1 << 12 , TissueForge::POTENTIAL_BOUND = 1 << 13 , POTENTIAL_SUM = 1 << 14 ,
  TissueForge::POTENTIAL_PERIODIC = 1 << 15 , POTENTIAL_COULOMBR = 1 << 16
}
 
enum  PotentialKind { POTENTIAL_KIND_POTENTIAL , POTENTIAL_KIND_DPD , POTENTIAL_KIND_BYPARTICLES , POTENTIAL_KIND_COMBINATION }
 

Functions

void TissueForge::potential_clear (struct Potential *p)
 Free the memory associated with the given potential.
 
HRESULT TissueForge::potential_init (struct Potential *p, FPTYPE(*f)(FPTYPE), FPTYPE(*fp)(FPTYPE), FPTYPE(*f6p)(FPTYPE), FPTYPE a, FPTYPE b, FPTYPE tol)
 Construct a #potential from the given function.
 
HRESULT TissueForge::potential_getcoeffs (FPTYPE(*f)(FPTYPE), FPTYPE(*fp)(FPTYPE), FPTYPE *xi, int n, FPTYPE *c, FPTYPE *err)
 
FPTYPE TissueForge::potential_getalpha (FPTYPE(*f6p)(FPTYPE), FPTYPE a, FPTYPE b)
 

Variables

struct Potential TissueForge::potential_null