GAS_ParticleForces Class Reference

#include <GAS_ParticleForces.h>

Inheritance diagram for GAS_ParticleForces:

GAS_SubSolver SIM_Solver SIM_OptionsUser SIM_Data

List of all members.

Public Member Functions

 GET_DATA_FUNC_S (GAS_NAME_GEOMETRY, GeometryName)
 GET_DATA_FUNC_B ("dopressure", DoPressure)
 GET_DATA_FUNC_B ("computev", ComputeVelocity)
 GET_DATA_FUNC_B ("docollision", DoCollisions)
 GET_DATA_FUNC_B ("usesdfvelocity", UseSDFVelocity)
 GET_DATA_FUNC_B ("usegeovelocity", UseGEOVelocity)
 GET_DATA_FUNC_F ("poissonratio", PoissonRatio)
 GET_DATA_FUNC_F ("elasticrepulsion", ElasticRepulsion)
 GET_DATA_FUNC_F ("repulsionstrength", RepulsionStrength)
 GET_DATA_FUNC_F ("viscousdampening", ViscousDampening)
 GET_DATA_FUNC_F ("dampeningstrength", DampeningStrength)
 GET_DATA_FUNC_F ("contactresistance", ContactResistance)
 GET_DATA_FUNC_F ("contactdampening", ContactDampening)
 GET_DATA_FUNC_F ("rollingfriction", RollingFriction)
 GET_DATA_FUNC_F ("objrollingfriction", ObjRollingFriction)
 GET_DATA_FUNC_F ("objimpulseduration", ObjImpulseDuration)
 GET_DATA_FUNC_F ("objtranslationimpulsefactor", ObjTranslationImpulseFactor)
 GET_DATA_FUNC_F ("objrollingimpulsefactor", ObjRollingImpulseFactor)
 GET_DATA_FUNC_F ("minbounce", MinBounce)
bool shouldMultiThread ()

Protected Member Functions

 GAS_ParticleForces (const SIM_DataFactory *factory)
virtual ~GAS_ParticleForces ()
virtual bool solveGasSubclass (SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)
virtual bool postSolveGasSubclass (SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)
void calcForces (SIM_Engine &engine, SIM_Object *obj, GU_Detail *gdp, const UT_RefArray< GAS_GrainObject > &grains, SIM_Time time, SIM_Time timestep)
void updateContactDisplacement (SIM_Object *obj, GU_Detail *gdp, const UT_RefArray< GAS_GrainObject > &grains, SIM_Time timestep)
UT_Vector3 computeRepulsiveForce (const UT_Vector3 &p, fpreal overlap, const UT_Vector3 &nml, const UT_Vector3 &relvel, fpreal R, fpreal mass, fpreal beta, fpreal kr, fpreal alpha, fpreal kd, fpreal nu, fpreal bounce, fpreal mu_s, fpreal mu_d, fpreal dt) const
UT_Vector3 computeRepulsiveForcePP (const UT_Vector3 &p, fpreal overlap, const UT_Vector3 &nml, const UT_Vector3 &relvel, fpreal R, fpreal pmass, fpreal beta, fpreal kr, fpreal alpha, fpreal kd, fpreal nu, fpreal gamma, fpreal bounce, fpreal mu_s, fpreal mu_d, fpreal kc, SIM_Time timestep, UT_Vector3 &shearD) const
UT_Vector3 computeRepulsiveTorque (const UT_Vector3 &z, const UT_Vector3 &c1, const UT_Vector3 &force, const UT_Vector3 &nml, const UT_Vector3 &angvel, fpreal pscale, fpreal pmass, fpreal mu_r) const
UT_Vector3 getContactDisplacement (GEO_AttributeHandle &cg_gah, GEO_AttributeHandle &csj_gah, GEO_AttributeHandle &csk_gah, GEO_AttributeHandle &cd_gah, int cs1, int cg2, int cs2) const
void setContactDisplacement (GEO_AttributeHandle &cg_gah, GEO_AttributeHandle &csj_gah, GEO_AttributeHandle &csk_gah, GEO_AttributeHandle &cd_gah, vector< int > cg, vector< int > csj, vector< int > csk, vector< UT_Vector3 > sd) const
int adjustContactDisplacement (SIM_Object *obj, GU_Detail *gdp, const UT_RefArray< GAS_GrainObject > &grains, SIM_Time timestep)
void resizeContactGrainAttributes (GU_Detail *gdp, int initialsize, int finalsize) const
void applyStiction (UT_Vector3 &totalforce, UT_Vector3 &totaltorque, const UT_Vector3 v1, const UT_Vector3 w1, const UT_Vector3 c1, const UT_Vector3 N, fpreal pscale, fpreal pmass, fpreal kv, fpreal kw, fpreal dt)
void createGrainObjects (SIM_Object *obj, GU_Detail *gdp, UT_RefArray< GAS_GrainObject > &grains)
UT_HashGrid< const
GAS_GrainSphere * > * 
buildHashGrid (const UT_RefArray< GAS_GrainObject > &grains)


Detailed Description

Definition at line 38 of file GAS_ParticleForces.h.


Constructor & Destructor Documentation

GAS_ParticleForces::GAS_ParticleForces ( const SIM_DataFactory factory  )  [explicit, protected]

virtual GAS_ParticleForces::~GAS_ParticleForces (  )  [protected, virtual]


Member Function Documentation

int GAS_ParticleForces::adjustContactDisplacement ( SIM_Object obj,
GU_Detail gdp,
const UT_RefArray< GAS_GrainObject > &  grains,
SIM_Time  timestep 
) [protected]

void GAS_ParticleForces::applyStiction ( UT_Vector3 totalforce,
UT_Vector3 totaltorque,
const UT_Vector3  v1,
const UT_Vector3  w1,
const UT_Vector3  c1,
const UT_Vector3  N,
fpreal  pscale,
fpreal  pmass,
fpreal  kv,
fpreal  kw,
fpreal  dt 
) [protected]

UT_HashGrid<const GAS_GrainSphere *>* GAS_ParticleForces::buildHashGrid ( const UT_RefArray< GAS_GrainObject > &  grains  )  [protected]

void GAS_ParticleForces::calcForces ( SIM_Engine engine,
SIM_Object obj,
GU_Detail gdp,
const UT_RefArray< GAS_GrainObject > &  grains,
SIM_Time  time,
SIM_Time  timestep 
) [protected]

UT_Vector3 GAS_ParticleForces::computeRepulsiveForce ( const UT_Vector3 p,
fpreal  overlap,
const UT_Vector3 nml,
const UT_Vector3 relvel,
fpreal  R,
fpreal  mass,
fpreal  beta,
fpreal  kr,
fpreal  alpha,
fpreal  kd,
fpreal  nu,
fpreal  bounce,
fpreal  mu_s,
fpreal  mu_d,
fpreal  dt 
) const [protected]

Compute the repulsive force between two particles. p is the point of impact, nml the normalized normal of the impact and relvel the relative velocity at the point of impact.

UT_Vector3 GAS_ParticleForces::computeRepulsiveForcePP ( const UT_Vector3 p,
fpreal  overlap,
const UT_Vector3 nml,
const UT_Vector3 relvel,
fpreal  R,
fpreal  pmass,
fpreal  beta,
fpreal  kr,
fpreal  alpha,
fpreal  kd,
fpreal  nu,
fpreal  gamma,
fpreal  bounce,
fpreal  mu_s,
fpreal  mu_d,
fpreal  kc,
SIM_Time  timestep,
UT_Vector3 shearD 
) const [protected]

UT_Vector3 GAS_ParticleForces::computeRepulsiveTorque ( const UT_Vector3 z,
const UT_Vector3 c1,
const UT_Vector3 force,
const UT_Vector3 nml,
const UT_Vector3 angvel,
fpreal  pscale,
fpreal  pmass,
fpreal  mu_r 
) const [protected]

void GAS_ParticleForces::createGrainObjects ( SIM_Object obj,
GU_Detail gdp,
UT_RefArray< GAS_GrainObject > &  grains 
) [protected]

GAS_ParticleForces::GET_DATA_FUNC_B ( "usegeovelocity"  ,
UseGEOVelocity   
)

GAS_ParticleForces::GET_DATA_FUNC_B ( "usesdfvelocity"  ,
UseSDFVelocity   
)

GAS_ParticleForces::GET_DATA_FUNC_B ( "docollision"  ,
DoCollisions   
)

GAS_ParticleForces::GET_DATA_FUNC_B ( "computev"  ,
ComputeVelocity   
)

GAS_ParticleForces::GET_DATA_FUNC_B ( "dopressure"  ,
DoPressure   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "minbounce"  ,
MinBounce   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "objrollingimpulsefactor"  ,
ObjRollingImpulseFactor   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "objtranslationimpulsefactor"  ,
ObjTranslationImpulseFactor   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "objimpulseduration"  ,
ObjImpulseDuration   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "objrollingfriction"  ,
ObjRollingFriction   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "rollingfriction"  ,
RollingFriction   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "contactdampening"  ,
ContactDampening   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "contactresistance"  ,
ContactResistance   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "dampeningstrength"  ,
DampeningStrength   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "viscousdampening"  ,
ViscousDampening   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "repulsionstrength"  ,
RepulsionStrength   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "elasticrepulsion"  ,
ElasticRepulsion   
)

GAS_ParticleForces::GET_DATA_FUNC_F ( "poissonratio"  ,
PoissonRatio   
)

GAS_ParticleForces::GET_DATA_FUNC_S ( GAS_NAME_GEOMETRY  ,
GeometryName   
)

UT_Vector3 GAS_ParticleForces::getContactDisplacement ( GEO_AttributeHandle cg_gah,
GEO_AttributeHandle csj_gah,
GEO_AttributeHandle csk_gah,
GEO_AttributeHandle cd_gah,
int  cs1,
int  cg2,
int  cs2 
) const [protected]

virtual bool GAS_ParticleForces::postSolveGasSubclass ( SIM_Engine engine,
SIM_Object obj,
SIM_Time  time,
SIM_Time  timestep 
) [protected, virtual]

Reimplemented from GAS_SubSolver.

void GAS_ParticleForces::resizeContactGrainAttributes ( GU_Detail gdp,
int  initialsize,
int  finalsize 
) const [protected]

void GAS_ParticleForces::setContactDisplacement ( GEO_AttributeHandle cg_gah,
GEO_AttributeHandle csj_gah,
GEO_AttributeHandle csk_gah,
GEO_AttributeHandle cd_gah,
vector< int >  cg,
vector< int >  csj,
vector< int >  csk,
vector< UT_Vector3 sd 
) const [protected]

bool GAS_ParticleForces::shouldMultiThread (  )  [inline]

Definition at line 63 of file GAS_ParticleForces.h.

virtual bool GAS_ParticleForces::solveGasSubclass ( SIM_Engine engine,
SIM_Object obj,
SIM_Time  time,
SIM_Time  timestep 
) [protected, virtual]

Computes a pressure force for the given particle field and either adjusts the velocity directly, or just adds to the force variable.

Implements GAS_SubSolver.

void GAS_ParticleForces::updateContactDisplacement ( SIM_Object obj,
GU_Detail gdp,
const UT_RefArray< GAS_GrainObject > &  grains,
SIM_Time  timestep 
) [protected]


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

Generated on Mon Jan 28 00:48:12 2013 for HDK by  doxygen 1.5.9