GAS_Integrator Class Reference

#include <GAS_Integrator.h>

Inheritance diagram for GAS_Integrator:

GAS_SubSolver SIM_Solver SIM_OptionsUser SIM_Data

List of all members.

Classes

struct  ObjectInfo
struct  RungeKuttaDataTable

Public Types

enum  IntegrateMethod {
  EULER, MIDPOINT, RUNGE_KUTTA, RUNGE_KUTTA_FEHLBERG,
  RUNGE_KUTTA_21, RUNGE_KUTTA_32
}
enum  ScaleMethod { MASS, DENSITY }
enum  AdvectionMethod { STANDARD = 0, XSPH }

Public Member Functions

 GETSET_DATA_FUNCS_I (SIM_NAME_PRIMARYSOLVER, PrimarySolver)
 GET_DATA_FUNC_S (GAS_NAME_GEOMETRY, GeometryName)
 GET_DATA_FUNC_I ("integratetype", IntegrateType)
 GET_DATA_FUNC_I ("advecttype", AdvectType)
 GET_DATA_FUNC_F ("xsphconstant", XsphConstant)
 GET_DATA_FUNC_B ("docollision", DoCollision)
 GET_DATA_FUNC_B ("collisionuv", CollisionUV)
 GET_DATA_FUNC_I ("scaletype", ScaleType)
 GET_DATA_FUNC_B ("doincremental", IncrementalForce)
 GET_DATA_FUNC_B ("integrateorientation", IntegrateOrientation)
 GET_DATA_FUNC_F ("errortolerance", ErrorTolerance)
 GET_DATA_FUNC_F ("repetitiontolerance", RepTolerance)
 GET_DATA_FUNC_F ("minsubstep", MinSubstep)
 GET_DATA_FUNC_F ("maxsubstep", MaxSubstep)
virtual SIM_Result solveObjectsSubclass (SIM_Engine &engine, SIM_ObjectArray &objects, SIM_ObjectArray &newobjects, SIM_ObjectArray &feedbacktoobjects, const SIM_Time &timestep)
bool shouldMultiThread ()

Protected Member Functions

 GAS_Integrator (const SIM_DataFactory *factory)
virtual ~GAS_Integrator ()
virtual bool solveGasSubclass (SIM_Engine &engine, SIM_Object *obj, SIM_Time time, SIM_Time timestep)
virtual void getImpulseMassMatrixSubclass (const SIM_Object &object, const UT_Vector3 &impulseworldpos, UT_DMatrix3 &immatrix) const
virtual void getPointImpulseMassMatrixSubclass (const SIM_Object &object, int ptnum, UT_DMatrix3 &immatrix) const


Detailed Description

Definition at line 48 of file GAS_Integrator.h.


Member Enumeration Documentation

Enumerator:
STANDARD 
XSPH 

Definition at line 86 of file GAS_Integrator.h.

Enumerator:
EULER 
MIDPOINT 
RUNGE_KUTTA 
RUNGE_KUTTA_FEHLBERG 
RUNGE_KUTTA_21 
RUNGE_KUTTA_32 

Definition at line 67 of file GAS_Integrator.h.

Enumerator:
MASS 
DENSITY 

Definition at line 80 of file GAS_Integrator.h.


Constructor & Destructor Documentation

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

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


Member Function Documentation

GAS_Integrator::GET_DATA_FUNC_B ( "integrateorientation"  ,
IntegrateOrientation   
)

GAS_Integrator::GET_DATA_FUNC_B ( "doincremental"  ,
IncrementalForce   
)

GAS_Integrator::GET_DATA_FUNC_B ( "collisionuv"  ,
CollisionUV   
)

GAS_Integrator::GET_DATA_FUNC_B ( "docollision"  ,
DoCollision   
)

GAS_Integrator::GET_DATA_FUNC_F ( "maxsubstep"  ,
MaxSubstep   
)

GAS_Integrator::GET_DATA_FUNC_F ( "minsubstep"  ,
MinSubstep   
)

GAS_Integrator::GET_DATA_FUNC_F ( "repetitiontolerance"  ,
RepTolerance   
)

GAS_Integrator::GET_DATA_FUNC_F ( "errortolerance"  ,
ErrorTolerance   
)

GAS_Integrator::GET_DATA_FUNC_F ( "xsphconstant"  ,
XsphConstant   
)

GAS_Integrator::GET_DATA_FUNC_I ( "scaletype"  ,
ScaleType   
)

GAS_Integrator::GET_DATA_FUNC_I ( "advecttype"  ,
AdvectType   
)

GAS_Integrator::GET_DATA_FUNC_I ( "integratetype"  ,
IntegrateType   
)

GAS_Integrator::GET_DATA_FUNC_S ( GAS_NAME_GEOMETRY  ,
GeometryName   
)

virtual void GAS_Integrator::getImpulseMassMatrixSubclass ( const SIM_Object object,
const UT_Vector3 impulseworldpos,
UT_DMatrix3 immatrix 
) const [protected, virtual]

Gets the impulse mass matrix of an object for an impulse at the provided world space position. The default implementation gets the closest point in the geometry and calls getPointImpulseMassMatrix().

Reimplemented from SIM_Solver.

virtual void GAS_Integrator::getPointImpulseMassMatrixSubclass ( const SIM_Object object,
int  ptnum,
UT_DMatrix3 immatrix 
) const [protected, virtual]

Gets the impulse mass matrix of an object for an impulse at the provided point on the geometry of the object. The default implementation finds the world space position of the point and calls getImpulseMassMatrix().

Reimplemented from SIM_Solver.

GAS_Integrator::GETSET_DATA_FUNCS_I ( SIM_NAME_PRIMARYSOLVER  ,
PrimarySolver   
)

bool GAS_Integrator::shouldMultiThread (  )  [inline]

Definition at line 100 of file GAS_Integrator.h.

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

Applies this subsolver for a single timestep. Returns true on success

Implements GAS_SubSolver.

Definition at line 106 of file GAS_Integrator.h.

virtual SIM_Result GAS_Integrator::solveObjectsSubclass ( SIM_Engine engine,
SIM_ObjectArray objects,
SIM_ObjectArray newobjects,
SIM_ObjectArray feedbacktoobjects,
const SIM_Time timestep 
) [virtual]

Asks all inputs to compute their forces and integrates them for the given timestep. We may do this several times if a higher-order timestep is used.

Reimplemented from GAS_SubSolver.


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

Generated on Fri May 25 00:10:22 2012 for HDK by  doxygen 1.5.9