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

Semi-Analytical Surface Tension Model for Free Surface Flows. More...

#include <SemiAnalyticalSurfaceTensionModel.h>

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

Public Types

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

Public Member Functions

 SemiAnalyticalSurfaceTensionModel ()
 
 ~SemiAnalyticalSurfaceTensionModel () override
 
 DEF_VAR (Real, SmoothingLength, Real(0.006), "smoothing length")
 
 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, ForceDensity, DeviceType::GPU, "")
 
 DEF_ARRAY_IN (Attribute, Attribute, DeviceType::GPU, "Particle attribute")
 
 DEF_INSTANCE_IN (TriangleSet< TDataType >, TriangleSet, "")
 
 DEF_VAR (Real, SurfaceTension, Real(0.055), "surface tension")
 
 DEF_VAR (Real, AdhesionIntensity, Real(30.0), "adhesion")
 
 DEF_VAR (Real, RestDensity, Real(1000), "Rest Density")
 
- Public Member Functions inherited from dyno::GroupModule
 GroupModule ()
 
virtual ~GroupModule ()
 
void pushModule (std::shared_ptr< Module > m)
 
const std::list< Module * > & moduleList () const
 
void setParentNode (Node *node) override
 Set the parent node.
 
- 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
 
NodegetParentNode ()
 
SceneGraphgetSceneGraph ()
 
bool isInitialized ()
 
virtual std::string getModuleType ()
 
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 ()
 

Public Attributes

DeviceArrayField< int > m_flip
 
DeviceArrayField< Coordm_velocity_mod
 

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::GroupModule
void preprocess () final
 
void updateImpl () override
 
- Protected Member Functions inherited from dyno::Module
virtual bool initializeImpl ()
 
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::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

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

Semi-Analytical Surface Tension Model for Free Surface Flows.

This class encapsulates all necessary modules to implement a semi-analytical solution for free surface flows with surface surface. Refer to Menglik et al.s "Semi-Analytical Surface Tension Model for Free Surface Flows", IEEE VR, Poster, 2022 for details

Definition at line 20 of file SemiAnalyticalSurfaceTensionModel.h.

Member Typedef Documentation

◆ Coord

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

Definition at line 25 of file SemiAnalyticalSurfaceTensionModel.h.

◆ Real

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

Definition at line 24 of file SemiAnalyticalSurfaceTensionModel.h.

Constructor & Destructor Documentation

◆ SemiAnalyticalSurfaceTensionModel()

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

Definition at line 20 of file SemiAnalyticalSurfaceTensionModel.cpp.

Here is the call graph for this function:

◆ ~SemiAnalyticalSurfaceTensionModel()

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::~SemiAnalyticalSurfaceTensionModel ( )
inlineoverride

Definition at line 28 of file SemiAnalyticalSurfaceTensionModel.h.

Member Function Documentation

◆ DEF_ARRAY_IN() [1/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_ARRAY_IN ( Attribute ,
Attribute ,
DeviceType::GPU ,
"Particle attribute"  )

◆ DEF_ARRAY_IN() [2/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_ARRAY_IN ( Coord ,
ForceDensity ,
DeviceType::GPU ,
""  )

◆ DEF_ARRAY_IN() [3/4]

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

◆ DEF_ARRAY_IN() [4/4]

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

◆ DEF_INSTANCE_IN()

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_INSTANCE_IN ( TriangleSet< TDataType > ,
TriangleSet ,
""  )

◆ DEF_VAR() [1/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_VAR ( Real ,
AdhesionIntensity ,
Real(30.0) ,
"adhesion"  )

◆ DEF_VAR() [2/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_VAR ( Real ,
RestDensity ,
Real(1000) ,
"Rest Density"  )

◆ DEF_VAR() [3/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_VAR ( Real ,
SmoothingLength ,
Real(0.006) ,
"smoothing length"  )

◆ DEF_VAR() [4/4]

template<typename TDataType>
dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::DEF_VAR ( Real ,
SurfaceTension ,
Real(0.055) ,
"surface tension"  )

◆ DEF_VAR_IN()

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

Member Data Documentation

◆ m_flip

template<typename TDataType>
DeviceArrayField<int> dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::m_flip

Definition at line 47 of file SemiAnalyticalSurfaceTensionModel.h.

◆ m_velocity_mod

template<typename TDataType>
DeviceArrayField<Coord> dyno::SemiAnalyticalSurfaceTensionModel< TDataType >::m_velocity_mod

Definition at line 48 of file SemiAnalyticalSurfaceTensionModel.h.


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