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

#include <SemiAnalyticalIncompressibilityModule.h>

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

Public Types

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

Public Member Functions

 SemiAnalyticalIncompressibilityModule ()
 
 ~SemiAnalyticalIncompressibilityModule () override
 
void constrain () override
 
DeviceArrayField< Coord > * getPosition ()
 
 DEF_ARRAYLIST_IN (int, NeighborParticleIds, DeviceType::GPU, "")
 Storing neighboring particles and triangles' ids.
 
 DEF_ARRAYLIST_IN (int, NeighborTriangleIds, DeviceType::GPU, "")
 
- Public Member Functions inherited from dyno::ConstraintModule
 ConstraintModule ()
 
 ~ConstraintModule () 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 ()
 

Public Attributes

FVar< Realm_smoothing_length
 
FVar< Realm_sampling_distance
 
DeviceArrayField< Realm_particle_mass
 
DeviceArrayField< Coordm_particle_position
 
DeviceArrayField< Coordm_particle_velocity
 
DeviceArrayField< Attributem_particle_attribute
 
DeviceArrayField< int > m_flip
 
DeviceArrayField< Realm_triangle_vertex_mass
 
DeviceArrayField< Coordm_triangle_vertex
 
DeviceArrayField< Coordm_triangle_vertex_old
 
DeviceArrayField< Trianglem_triangle_index
 

Protected Member Functions

bool initializeImpl () override
 
- Protected Member Functions inherited from dyno::ConstraintModule
void updateImpl () override
 
- Protected Member Functions inherited from dyno::Module
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

bool m_bConfigured = false
 
Real m_maxAlpha
 
Real m_maxA
 
Real m_airPressure = 10000.0f
 
Real m_particleMass = 1.0f
 
Real m_tangential = 1.0f
 
Real m_separation = 1.0f
 
Real m_restDensity = 1000.0f
 
int num_f
 
int start_f = 0
 
bool first_step = false
 
DArray< Realm_alpha
 
DArray< RealRho_alpha
 
DArray< Realm_Aii
 
DArray< Realm_AiiFluid
 
DArray< Realm_AiiTotal
 
DArray< Realm_density
 
DArray< Realm_pressure
 
DArray< Realm_divergence
 
DArray< bool > m_bSurface
 
DArray< Realm_y
 
DArray< Realm_r
 
DArray< Realm_p
 
Reduction< Real > * m_reduce
 
Arithmetic< Real > * m_arithmetic
 
DArray< Coordm_meshVel
 
std::shared_ptr< SummationDensity< TDataType > > m_densitySum
 

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::OBase
std::vector< FBase * > fields_input
 
std::vector< FBase * > fields_output
 
std::vector< FBase * > fields_param
 

Detailed Description

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

SemiAnalyticalIncompressibilityModule implements the projection-based part of semi-analytical boundary conditions of the paper <Semi-analytical Solid Boundary Conditions for Free Surface Flows> It is used in SemiAnalyticalIncompressibleFluidModel class

Definition at line 28 of file SemiAnalyticalIncompressibilityModule.h.

Member Typedef Documentation

◆ Coord

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

Definition at line 32 of file SemiAnalyticalIncompressibilityModule.h.

◆ Real

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

Definition at line 31 of file SemiAnalyticalIncompressibilityModule.h.

◆ Triangle

template<typename TDataType>
typedef TopologyModule::Triangle dyno::SemiAnalyticalIncompressibilityModule< TDataType >::Triangle

Definition at line 33 of file SemiAnalyticalIncompressibilityModule.h.

Constructor & Destructor Documentation

◆ SemiAnalyticalIncompressibilityModule()

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

◆ ~SemiAnalyticalIncompressibilityModule()

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

Member Function Documentation

◆ constrain()

template<typename TDataType>
void dyno::SemiAnalyticalIncompressibilityModule< TDataType >::constrain ( )
overridevirtual

enforce projection-based fluids with semi-analytical boundary conditions

Returns
(always)

Implements dyno::ConstraintModule.

◆ DEF_ARRAYLIST_IN() [1/2]

template<typename TDataType>
dyno::SemiAnalyticalIncompressibilityModule< TDataType >::DEF_ARRAYLIST_IN ( int ,
NeighborParticleIds ,
DeviceType::GPU ,
""  )

Storing neighboring particles and triangles' ids.

◆ DEF_ARRAYLIST_IN() [2/2]

template<typename TDataType>
dyno::SemiAnalyticalIncompressibilityModule< TDataType >::DEF_ARRAYLIST_IN ( int ,
NeighborTriangleIds ,
DeviceType::GPU ,
""  )

◆ getPosition()

template<typename TDataType>
DeviceArrayField< Coord > * dyno::SemiAnalyticalIncompressibilityModule< TDataType >::getPosition ( )
inline

Definition at line 45 of file SemiAnalyticalIncompressibilityModule.h.

◆ initializeImpl()

template<typename TDataType>
bool dyno::SemiAnalyticalIncompressibilityModule< TDataType >::initializeImpl ( )
overrideprotectedvirtual

Reimplemented from dyno::Module.

Member Data Documentation

◆ first_step

template<typename TDataType>
bool dyno::SemiAnalyticalIncompressibilityModule< TDataType >::first_step = false
private

Definition at line 90 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_Aii

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_Aii
private

Definition at line 95 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_AiiFluid

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_AiiFluid
private

Definition at line 96 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_AiiTotal

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_AiiTotal
private

Definition at line 97 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_airPressure

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_airPressure = 10000.0f
private

Definition at line 81 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_alpha

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_alpha
private

Definition at line 93 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_arithmetic

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

Definition at line 113 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_bConfigured

template<typename TDataType>
bool dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_bConfigured = false
private

Definition at line 78 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_bSurface

template<typename TDataType>
DArray<bool> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_bSurface
private

Definition at line 105 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_density

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_density
private

Definition at line 100 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_densitySum

template<typename TDataType>
std::shared_ptr<SummationDensity<TDataType> > dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_densitySum
private

Definition at line 117 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_divergence

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_divergence
private

Definition at line 103 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_flip

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

Definition at line 60 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_maxA

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_maxA
private

Definition at line 80 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_maxAlpha

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_maxAlpha
private

Definition at line 79 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_meshVel

template<typename TDataType>
DArray<Coord> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_meshVel
private

Definition at line 115 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_p

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

Definition at line 110 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_particle_attribute

template<typename TDataType>
DeviceArrayField<Attribute> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_particle_attribute

Definition at line 59 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_particle_mass

template<typename TDataType>
DeviceArrayField<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_particle_mass

Definition at line 54 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_particle_position

template<typename TDataType>
DeviceArrayField<Coord> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_particle_position

Definition at line 56 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_particle_velocity

template<typename TDataType>
DeviceArrayField<Coord> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_particle_velocity

Definition at line 57 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_particleMass

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_particleMass = 1.0f
private

Definition at line 83 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_pressure

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_pressure
private

Definition at line 102 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_r

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

Definition at line 109 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_reduce

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

Definition at line 112 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_restDensity

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_restDensity = 1000.0f
private

Definition at line 86 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_sampling_distance

template<typename TDataType>
FVar<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_sampling_distance

Definition at line 52 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_separation

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_separation = 1.0f
private

Definition at line 85 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_smoothing_length

template<typename TDataType>
FVar<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_smoothing_length

Definition at line 51 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_tangential

template<typename TDataType>
Real dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_tangential = 1.0f
private

Definition at line 84 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_triangle_index

template<typename TDataType>
DeviceArrayField<Triangle> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_triangle_index

Definition at line 65 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_triangle_vertex

template<typename TDataType>
DeviceArrayField<Coord> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_triangle_vertex

Definition at line 63 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_triangle_vertex_mass

template<typename TDataType>
DeviceArrayField<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_triangle_vertex_mass

Definition at line 62 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_triangle_vertex_old

template<typename TDataType>
DeviceArrayField<Coord> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::m_triangle_vertex_old

Definition at line 64 of file SemiAnalyticalIncompressibilityModule.h.

◆ m_y

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

Definition at line 108 of file SemiAnalyticalIncompressibilityModule.h.

◆ num_f

template<typename TDataType>
int dyno::SemiAnalyticalIncompressibilityModule< TDataType >::num_f
private

Definition at line 88 of file SemiAnalyticalIncompressibilityModule.h.

◆ Rho_alpha

template<typename TDataType>
DArray<Real> dyno::SemiAnalyticalIncompressibilityModule< TDataType >::Rho_alpha
private

Definition at line 94 of file SemiAnalyticalIncompressibilityModule.h.

◆ start_f

template<typename TDataType>
int dyno::SemiAnalyticalIncompressibilityModule< TDataType >::start_f = 0
private

Definition at line 89 of file SemiAnalyticalIncompressibilityModule.h.


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