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

Projection-based solver. More...

#include <VariationalApproximateProjection.h>

Inheritance diagram for dyno::VariationalApproximateProjection< TDataType >:
Collaboration diagram for dyno::VariationalApproximateProjection< 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

 VariationalApproximateProjection ()
 
 ~VariationalApproximateProjection () override
 
 DEF_VAR (Real, RestDensity, Real(1000), "")
 
 DEF_VAR_IN (Real, TimeStep, "Time step size")
 
 DEF_ARRAY_IN (Coord, Position, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (Coord, Velocity, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (Coord, Normal, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (Attribute, Attribute, DeviceType::GPU, "")
 
 DEF_ARRAYLIST_IN (int, NeighborIds, DeviceType::GPU, "")
 
- Public Member Functions inherited from dyno::ParticleApproximation< TDataType >
 ParticleApproximation ()
 
virtual ~ParticleApproximation ()
 
 DECLARE_ENUM (EKernelType, KT_Smooth=0, KT_Spiky=1)
 
 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 ()
 

Protected Member Functions

void compute () override
 
- 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 ()
 

Private Attributes

Real mAlphaMax
 
Real mAMax
 
Real mAirPressure = 0.0f
 
Real mTangential = 0.1f
 
Real mSeparation = 0.1f
 
DArray< RealmAlpha
 
DArray< RealmAii
 
DArray< RealmAiiFluid
 
DArray< RealmAiiTotal
 
DArray< RealmPressure
 
DArray< RealmDivergence
 
DArray< bool > mIsSurface
 
DArray< Realm_y
 
DArray< Realm_r
 
DArray< Realm_p
 
Reduction< Real > * m_reduce
 
Arithmetic< Real > * m_arithmetic
 
std::shared_ptr< SummationDensity< TDataType > > mDensityCalculator
 

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 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::VariationalApproximateProjection< TDataType >

Projection-based solver.

Implementation of an approximate projection method for incompressible free-surface flows under a variational staggered particle framework. Refer to "A Variational Staggered Particle Framework for Incompressible Free-Surface Flows", [arXiv:2001.09421], 2020.

Definition at line 37 of file VariationalApproximateProjection.h.

Member Typedef Documentation

◆ Coord

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

Definition at line 42 of file VariationalApproximateProjection.h.

◆ Real

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

Definition at line 41 of file VariationalApproximateProjection.h.

Constructor & Destructor Documentation

◆ VariationalApproximateProjection()

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

◆ ~VariationalApproximateProjection()

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

Member Function Documentation

◆ compute()

template<typename TDataType>
void dyno::VariationalApproximateProjection< TDataType >::compute ( )
overrideprotectedvirtual

◆ DEF_ARRAY_IN() [1/4]

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_ARRAY_IN ( Attribute ,
Attribute ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [2/4]

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_ARRAY_IN ( Coord ,
Normal ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [3/4]

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_ARRAY_IN ( Coord ,
Position ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [4/4]

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_ARRAY_IN ( Coord ,
Velocity ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAYLIST_IN()

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_ARRAYLIST_IN ( int ,
NeighborIds ,
DeviceType::GPU ,
""  )

◆ DEF_VAR()

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_VAR ( Real ,
RestDensity ,
Real(1000) ,
""  )

◆ DEF_VAR_IN()

template<typename TDataType>
dyno::VariationalApproximateProjection< TDataType >::DEF_VAR_IN ( Real ,
TimeStep ,
"Time step size"  )

Member Data Documentation

◆ m_arithmetic

template<typename TDataType>
Arithmetic<Real>* dyno::VariationalApproximateProjection< TDataType >::m_arithmetic
private

Definition at line 93 of file VariationalApproximateProjection.h.

◆ m_p

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::m_p
private

Definition at line 90 of file VariationalApproximateProjection.h.

◆ m_r

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::m_r
private

Definition at line 89 of file VariationalApproximateProjection.h.

◆ m_reduce

template<typename TDataType>
Reduction<Real>* dyno::VariationalApproximateProjection< TDataType >::m_reduce
private

Definition at line 92 of file VariationalApproximateProjection.h.

◆ m_y

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::m_y
private

Definition at line 88 of file VariationalApproximateProjection.h.

◆ mAii

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::mAii
private

Definition at line 77 of file VariationalApproximateProjection.h.

◆ mAiiFluid

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::mAiiFluid
private

Definition at line 78 of file VariationalApproximateProjection.h.

◆ mAiiTotal

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::mAiiTotal
private

Definition at line 79 of file VariationalApproximateProjection.h.

◆ mAirPressure

template<typename TDataType>
Real dyno::VariationalApproximateProjection< TDataType >::mAirPressure = 0.0f
private

Definition at line 69 of file VariationalApproximateProjection.h.

◆ mAlpha

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

Definition at line 76 of file VariationalApproximateProjection.h.

◆ mAlphaMax

template<typename TDataType>
Real dyno::VariationalApproximateProjection< TDataType >::mAlphaMax
private

Definition at line 67 of file VariationalApproximateProjection.h.

◆ mAMax

template<typename TDataType>
Real dyno::VariationalApproximateProjection< TDataType >::mAMax
private

Definition at line 68 of file VariationalApproximateProjection.h.

◆ mDensityCalculator

template<typename TDataType>
std::shared_ptr<SummationDensity<TDataType> > dyno::VariationalApproximateProjection< TDataType >::mDensityCalculator
private

Definition at line 95 of file VariationalApproximateProjection.h.

◆ mDivergence

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

Definition at line 82 of file VariationalApproximateProjection.h.

◆ mIsSurface

template<typename TDataType>
DArray<bool> dyno::VariationalApproximateProjection< TDataType >::mIsSurface
private

Definition at line 85 of file VariationalApproximateProjection.h.

◆ mPressure

template<typename TDataType>
DArray<Real> dyno::VariationalApproximateProjection< TDataType >::mPressure
private

Definition at line 81 of file VariationalApproximateProjection.h.

◆ mSeparation

template<typename TDataType>
Real dyno::VariationalApproximateProjection< TDataType >::mSeparation = 0.1f
private

Definition at line 72 of file VariationalApproximateProjection.h.

◆ mTangential

template<typename TDataType>
Real dyno::VariationalApproximateProjection< TDataType >::mTangential = 0.1f
private

Definition at line 71 of file VariationalApproximateProjection.h.


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