PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::DivergenceFreeSphSolver< TDataType > Class Template Reference

#include <DivergenceFreeSphSolver.h>

Inheritance diagram for dyno::DivergenceFreeSphSolver< TDataType >:
Collaboration diagram for dyno::DivergenceFreeSphSolver< TDataType >:

Public Types

typedef TDataType::Real Real
 
typedef TDataType::Coord Coord
 
- Public Types inherited from dyno::ParticleApproximation< TDataType >
typedef TDataType::Real Real
 
- Public Types inherited from dyno::OBase
typedef std::vector< FBase * > FieldVector
 
typedef std::map< FieldID, FBase * > FieldMap
 

Public Member Functions

 DivergenceFreeSphSolver ()
 
 ~DivergenceFreeSphSolver () override
 
 DEF_VAR_IN (Real, TimeStep, "Time Step")
 
 DEF_ARRAY_IN (Coord, Position, DeviceType::GPU, "Input particle position")
 Particle positions.
 
 DEF_ARRAY_IN (Coord, Velocity, DeviceType::GPU, "Input particle velocity")
 Particle velocities.
 
 DEF_ARRAYLIST_IN (int, NeighborIds, DeviceType::GPU, "Neighboring particles' ids")
 Neighboring particles' ids.
 
 DEF_ARRAY_OUT (Real, Density, DeviceType::GPU, "Final particle density")
 Final particle densities.
 
 DEF_VAR (bool, DivergenceSolverDisabled, false, "Disable the Divergence solver in the DFSPH method")
 Disable the divergence solver.
 
 DEF_VAR (bool, DensitySolverDisabled, false, "Disable the Density solver in the DFSPH method")
 Disable the density solver.
 
 DEF_VAR (Real, RestDensity, 1000, "Reference density")
 Rest density.
 
 DEF_VAR (Real, DivergenceErrorThreshold, 0.1, "Error Thershold for the Divergence solver")
 Error Threshold for the Divergence solver.
 
 DEF_VAR (Real, DensityErrorThreshold, 0.001, "Error Thershold for the Divergence solver")
 Error Threshold for the Density solver.
 
 DEF_VAR (Real, MaxIterationNumber, 50, "Maximum number of iteration of each solver")
 Maximum number of iteration of each solver.
 
void compute () override
 
void computeAlpha ()
 
Real takeOneDensityIteration ()
 
Real takeOneDivergenIteration ()
 
- Public Member Functions inherited from dyno::ParticleApproximation< TDataType >
 ParticleApproximation ()
 
virtual ~ParticleApproximation ()
 
 DECLARE_ENUM (EKernelType, KT_Smooth=0, KT_Spiky=1)
 
void compute () override
 
 DEF_VAR_IN (Real, SmoothingLength, "Smoothing Length")
 
 DEF_VAR_IN (Real, SamplingDistance, "Particle sampling distance")
 
 DEF_ENUM (EKernelType, KernelType, EKernelType::KT_Spiky, "Rendering mode")
 
- Public Member Functions inherited from dyno::ComputeModule
 ComputeModule ()
 
 ~ComputeModule () override
 
std::string getModuleType () override
 
- Public Member Functions inherited from dyno::Module
 Module (std::string name="default")
 
 ~Module (void) override
 
bool initialize ()
 
void update ()
 
void setName (std::string name)
 
std::string getName () override
 
virtual void setParentNode (Node *node)
 Set the parent node.
 
NodegetParentNode ()
 
SceneGraphgetSceneGraph ()
 
bool isInitialized ()
 
bool attachField (FBase *field, std::string name, std::string desc, bool autoDestroy=true) override
 Attach a field to Base.
 
bool isInputComplete ()
 Check the completeness of input fields.
 
bool isOutputCompete ()
 
 DEF_VAR (bool, ForceUpdate, false, "")
 
void setUpdateAlways (bool b)
 Set the update strategy for the module.
 
- Public Member Functions inherited from dyno::OBase
 OBase ()
 
 ~OBase () override
 
virtual std::string caption ()
 Return the caption.
 
virtual bool captionVisible ()
 Whether to hide the caption in the GUI.
 
virtual std::string description ()
 Return a description for the node or module, override this function to support user-defined description.
 
bool addField (FBase *data)
 Add a field to Base FieldID will be set to the name of Field by default.
 
bool addField (FieldID name, FBase *data)
 Add a field to Base.
 
bool addFieldAlias (FieldID name, FBase *data)
 
bool addFieldAlias (FieldID name, FBase *data, FieldMap &fieldAlias)
 
bool findField (FBase *data)
 Find a field by its pointer.
 
bool findFieldAlias (const FieldID name)
 Find a field by its name.
 
bool findFieldAlias (const FieldID name, FieldMap &fieldAlias)
 Find a field in fieldAlias by its name This function is typically called by other functions.
 
bool removeField (FBase *data)
 Remove a field by its pointer.
 
bool removeFieldAlias (const FieldID name)
 Remove a field by its name.
 
bool removeFieldAlias (const FieldID name, FieldMap &fieldAlias)
 
FBasegetField (const FieldID name)
 Return a field by its name.
 
std::vector< FBase * > & getAllFields ()
 
template<typename T>
TgetField (FieldID name)
 
bool isAllFieldsReady ()
 Check the completeness of all required fields.
 
std::vector< FieldIDgetFieldAlias (FBase *data)
 
int getFieldAliasCount (FBase *data)
 
void setBlockCoord (float x, float y)
 
float bx ()
 
float by ()
 
bool findInputField (FBase *field)
 
bool addInputField (FBase *field)
 
bool removeInputField (FBase *field)
 
std::vector< FBase * > & getInputFields ()
 
bool findOutputField (FBase *field)
 
bool addOutputField (FBase *field)
 
bool addToOutput (FBase *field)
 
bool removeOutputField (FBase *field)
 
bool removeFromOutput (FBase *field)
 
std::vector< FBase * > & getOutputFields ()
 
bool findParameter (FBase *field)
 
bool addParameter (FBase *field)
 
bool removeParameter (FBase *field)
 
std::vector< FBase * > & getParameters ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Private Attributes

DArray< RealmKappa_r
 
DArray< RealmKappa_v
 
DArray< RealmAlpha
 
DArray< RealmPredictDensity
 
DArray< RealmDivergence
 
std::shared_ptr< SummationDensity< TDataType > > mSummation
 

Additional Inherited Members

- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 
- Protected Member Functions inherited from dyno::Module
virtual bool initializeImpl ()
 
virtual void preprocess ()
 
virtual void postprocess ()
 
virtual bool validateInputs ()
 
virtual bool validateOutputs ()
 
virtual bool requireUpdate ()
 
virtual void updateStarted ()
 Two functions called at the beginning and end of update() used for debug.
 
virtual void updateEnded ()
 
- Protected Attributes inherited from dyno::ParticleApproximation< TDataType >
Real mScalingFactor = Real(1)
 
- Protected Attributes inherited from dyno::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

template<typename TDataType>
class dyno::DivergenceFreeSphSolver< TDataType >

Definition at line 23 of file DivergenceFreeSphSolver.h.

Member Typedef Documentation

◆ Coord

template<typename TDataType>
typedef TDataType::Coord dyno::DivergenceFreeSphSolver< TDataType >::Coord

Definition at line 28 of file DivergenceFreeSphSolver.h.

◆ Real

template<typename TDataType>
typedef TDataType::Real dyno::DivergenceFreeSphSolver< TDataType >::Real

Definition at line 27 of file DivergenceFreeSphSolver.h.

Constructor & Destructor Documentation

◆ DivergenceFreeSphSolver()

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DivergenceFreeSphSolver ( )

◆ ~DivergenceFreeSphSolver()

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::~DivergenceFreeSphSolver ( )
override

Member Function Documentation

◆ compute()

template<typename TDataType>
void dyno::DivergenceFreeSphSolver< TDataType >::compute ( )
overridevirtual

Implements dyno::ComputeModule.

◆ computeAlpha()

template<typename TDataType>
void dyno::DivergenceFreeSphSolver< TDataType >::computeAlpha ( )

◆ DEF_ARRAY_IN() [1/2]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_ARRAY_IN ( Coord ,
Position ,
DeviceType::GPU ,
"Input particle position"  )

Particle positions.

◆ DEF_ARRAY_IN() [2/2]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_ARRAY_IN ( Coord ,
Velocity ,
DeviceType::GPU ,
"Input particle velocity"  )

Particle velocities.

◆ DEF_ARRAY_OUT()

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_ARRAY_OUT ( Real ,
Density ,
DeviceType::GPU ,
"Final particle density"  )

Final particle densities.

◆ DEF_ARRAYLIST_IN()

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_ARRAYLIST_IN ( int ,
NeighborIds ,
DeviceType::GPU ,
"Neighboring particles' ids"  )

Neighboring particles' ids.

◆ DEF_VAR() [1/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( bool ,
DensitySolverDisabled ,
false ,
"Disable the Density solver in the DFSPH method"  )

Disable the density solver.

◆ DEF_VAR() [2/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( bool ,
DivergenceSolverDisabled ,
false ,
"Disable the Divergence solver in the DFSPH method"  )

Disable the divergence solver.

◆ DEF_VAR() [3/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( Real ,
DensityErrorThreshold ,
0. 001,
"Error Thershold for the Divergence solver"  )

Error Threshold for the Density solver.

◆ DEF_VAR() [4/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( Real ,
DivergenceErrorThreshold ,
0. 1,
"Error Thershold for the Divergence solver"  )

Error Threshold for the Divergence solver.

◆ DEF_VAR() [5/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( Real ,
MaxIterationNumber ,
50 ,
"Maximum number of iteration of each solver"  )

Maximum number of iteration of each solver.

◆ DEF_VAR() [6/6]

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR ( Real ,
RestDensity ,
1000 ,
"Reference density"  )

Rest density.

◆ DEF_VAR_IN()

template<typename TDataType>
dyno::DivergenceFreeSphSolver< TDataType >::DEF_VAR_IN ( Real ,
TimeStep ,
"Time Step"  )

◆ takeOneDensityIteration()

template<typename TDataType>
Real dyno::DivergenceFreeSphSolver< TDataType >::takeOneDensityIteration ( )

◆ takeOneDivergenIteration()

template<typename TDataType>
Real dyno::DivergenceFreeSphSolver< TDataType >::takeOneDivergenIteration ( )

Member Data Documentation

◆ mAlpha

template<typename TDataType>
DArray<Real> dyno::DivergenceFreeSphSolver< TDataType >::mAlpha
private

Definition at line 114 of file DivergenceFreeSphSolver.h.

◆ mDivergence

template<typename TDataType>
DArray<Real> dyno::DivergenceFreeSphSolver< TDataType >::mDivergence
private

Definition at line 124 of file DivergenceFreeSphSolver.h.

◆ mKappa_r

template<typename TDataType>
DArray<Real> dyno::DivergenceFreeSphSolver< TDataType >::mKappa_r
private

Definition at line 104 of file DivergenceFreeSphSolver.h.

◆ mKappa_v

template<typename TDataType>
DArray<Real> dyno::DivergenceFreeSphSolver< TDataType >::mKappa_v
private

Definition at line 109 of file DivergenceFreeSphSolver.h.

◆ mPredictDensity

template<typename TDataType>
DArray<Real> dyno::DivergenceFreeSphSolver< TDataType >::mPredictDensity
private

Definition at line 119 of file DivergenceFreeSphSolver.h.

◆ mSummation

template<typename TDataType>
std::shared_ptr<SummationDensity<TDataType> > dyno::DivergenceFreeSphSolver< TDataType >::mSummation
private

Definition at line 128 of file DivergenceFreeSphSolver.h.


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