PhyStar  v0.0.0 thu24
ibm::IBMCart< N_dim > Struct Template Reference

#include <IBMCart.hpp>

Inheritance diagram for ibm::IBMCart< N_dim >:
Collaboration diagram for ibm::IBMCart< N_dim >:

Public Types

using Field = blockelm::CartField< Real, N_dim >
 

Public Member Functions

 IBMCart ()
 
 IBMCart (int id_, blockelm::CartBlock< N_dim > &block, std::vector< Real > pos_ref0, IBMBase< N_dim >::Option &option)
 
 IBMCart (int id_, blockelm::CartBlock< N_dim > &block, std::string filename, tml::tmlnode &ibtml)
 
void Create (int id_, blockelm::CartBlock< N_dim > &block, std::string filename, tml::tmlnode &ibtml)
 
auto & AddCartFieldRef (blockelm::CartField< Real, N_dim > *ptr)
 
auto & ClearCartFieldRef ()
 
void InitFilter (blockelm::CartBlock< N_dim > &block)
 
void Init ()
 
void InitFilter ()
 
void InitFilter (const std::vector< std::vector< Real >> &bds)
 
virtual bool IsInside (const blin::Vecr< N_dim > &pos)
 
virtual bool IsInsideWithGhostWidth (const blin::Vecr< N_dim > &pos)
 
virtual bool IsInsideWithMaxCollisionWidth (const blin::Vecr< N_dim > &pos)
 
void Perpare (blockelm::CartBlock< N_dim > &block)
 
virtual void Perpare ()
 
void UpdateNearestGridIndex (blockelm::CartMesh< N_dim > &mesh)
 
void UpdateNearestGridIndex (blockelm::CartField< Real, N_dim > &in)
 
void CalIBForce (int dim, Field &in, Field &out, Real dt)
 
auto CalIBForceImplicitely (dmdyn::ParticleData< N_dim > &pdata, Real dt)
 
Real InterpFromEToL (int ind_ibpnt, Field &in)
 
void CalLagVelocity (int dim, int ind_ibpnt, Field &in, Real dt)
 
Real CalLagForce (int dim, int ind_ibpnt, Field &in, Real dt)
 
Real CalLagForceByPenaltyFun (int dim, int ind_ibpnt, Field &in, Real dt)
 
Real CalLagForceByDirectForce (int dim, int ind_ibpnt, Field &in, Real dt)
 
void AddIBForceToLocal (int dim, int ind_ibpnt, Field &in, Field &out, Real dt)
 
Force< N_dim > LocalInternalForce (dmdyn::ParticleModel *ptr_part, dmdyn::ParticleData< N_dim > &pdata, bool flag=true)
 
- Public Member Functions inherited from ibm::IBMBase< N_dim >
 IBMBase ()
 
 IBMBase (int id_, std::string filename, tml::tmlnode &ibtml)
 
 IBMBase (int id_, std::vector< Real > pos_ref0, Option &option0)
 
void Create (int id_, std::string filename, tml::tmlnode &ibtml)
 
void ConfigGeo (tml::tmlnode &ibtml)
 
void CreateGeo ()
 create wall geometry from toml More...
 
auto & GetCollObj ()
 
Real GetMeanArea ()
 
virtual void SetIBSolType (IBMSolType soltype0)
 
virtual void SetIBMethod (IBMethod method0, std::vector< Real > para={})
 
void SetMPI (const MPI_Comm comm_)
 
void LoadLagPoints (std::string filename)
 
void AddNode (auto &nd)
 
void AddVirtualNode (auto &nd)
 
void AddElm (auto &elm)
 
void AddVirtualElm (auto &elm)
 
void InitIBPoints ()
 
void UpdateIBPoints (dmdyn::ParticleData< N_dim > &pdata)
 update ib points by input pdata More...
 
void PrintIBPoints ()
 
void VelocityBoundary ()
 
auto & CalLocalForceAndTorque ()
 
auto & CalLocalForceAndTorque (blin::Vecr< N_dim > &ref)
 
auto CalTotalForceAndTorque ()
 
void InitForceLog (std::string path, bool iconti)
 
void ForceLog (std::string path, bool iconti, int istep, Real time)
 
std::vector< algo::fcl::Vec3f > GenerateFCLPoints ()
 
void GenerateBVHMesh ()
 

Public Attributes

std::vector< blockelm::CartField< Real, N_dim > * > ptr_fieldlist
 
compgeo::SimpleCartBoxZone< N_dim > boxfilter
 
blockelm::CartBlock< N_dim > * ptr_block = nullptr
 
std::vector< Realghost_width
 
std::vector< Realcoll_width
 
Veci< N_dim > max_gridind
 
Veci< N_dim > min_gridind
 
- Public Attributes inherited from ibm::IBMBase< N_dim >
int id
 
MPI_Comm comm
 
blin::Vecr< N_dim > pos_ref = 0.0
 
struct ibm::IBMBase::Option option
 
struct ibm::IBMBase::Geom geo
 
struct ibm::IBMBase::IBVelBoundary ibvelb
 
dmdyn::SmartPList< IBPoint< N_dim > > ibpoints
 
std::unordered_map< int, int > nodeid
 
std::unordered_map< int, int > elmid
 
dmdyn::SmartPList< IBNode< N_dim > > nodes
 
dmdyn::SmartPList< IBElement< N_dim > > elements
 
Force< N_dim > local
 
Force< N_dim > total = {0.0, 0.0}
 
Vecr< N_dim > dr
 
Real mean_ds = -999.0
 

Member Typedef Documentation

◆ Field

template<int N_dim>
using ibm::IBMCart< N_dim >::Field = blockelm::CartField<Real, N_dim>

Constructor & Destructor Documentation

◆ IBMCart() [1/3]

template<int N_dim>
ibm::IBMCart< N_dim >::IBMCart ( )
inline

◆ IBMCart() [2/3]

template<int N_dim>
ibm::IBMCart< N_dim >::IBMCart ( int  id_,
blockelm::CartBlock< N_dim > &  block,
std::vector< Real pos_ref0,
IBMBase< N_dim >::Option option 
)
inline

◆ IBMCart() [3/3]

template<int N_dim>
ibm::IBMCart< N_dim >::IBMCart ( int  id_,
blockelm::CartBlock< N_dim > &  block,
std::string  filename,
tml::tmlnode ibtml 
)
inline

Member Function Documentation

◆ AddCartFieldRef()

template<int N_dim>
auto& ibm::IBMCart< N_dim >::AddCartFieldRef ( blockelm::CartField< Real, N_dim > *  ptr)
inline

◆ AddIBForceToLocal()

template<int N_dim>
void ibm::IBMCart< N_dim >::AddIBForceToLocal ( int  dim,
int  ind_ibpnt,
Field in,
Field out,
Real  dt 
)
inline

◆ CalIBForce()

template<int N_dim>
void ibm::IBMCart< N_dim >::CalIBForce ( int  dim,
Field in,
Field out,
Real  dt 
)
inline

References ibm::IBMCart< N_dim >::AddIBForceToLocal(), and ibm::IBMCart< N_dim >::CalLagVelocity().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalIBForceImplicitely()

template<int N_dim>
auto ibm::IBMCart< N_dim >::CalIBForceImplicitely ( dmdyn::ParticleData< N_dim > &  pdata,
Real  dt 
)
inline

◆ CalLagForce()

template<int N_dim>
Real ibm::IBMCart< N_dim >::CalLagForce ( int  dim,
int  ind_ibpnt,
Field in,
Real  dt 
)
inline

References ibm::IBMCart< N_dim >::CalLagForceByDirectForce(), ibm::IBMCart< N_dim >::CalLagForceByPenaltyFun(), ibm::DirectForce, and ibm::PenaltyFun.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CalLagForceByDirectForce()

template<int N_dim>
Real ibm::IBMCart< N_dim >::CalLagForceByDirectForce ( int  dim,
int  ind_ibpnt,
Field in,
Real  dt 
)
inline

References ibm::IBMBase< N_dim >::ibpoints.

Here is the caller graph for this function:

◆ CalLagForceByPenaltyFun()

template<int N_dim>
Real ibm::IBMCart< N_dim >::CalLagForceByPenaltyFun ( int  dim,
int  ind_ibpnt,
Field in,
Real  dt 
)
inline

References ibm::IBMBase< N_dim >::ibpoints.

Here is the caller graph for this function:

◆ CalLagVelocity()

template<int N_dim>
void ibm::IBMCart< N_dim >::CalLagVelocity ( int  dim,
int  ind_ibpnt,
Field in,
Real  dt 
)
inline

References ibm::IBMBase< N_dim >::ibpoints, and ibm::IBMCart< N_dim >::InterpFromEToL().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ClearCartFieldRef()

template<int N_dim>
auto& ibm::IBMCart< N_dim >::ClearCartFieldRef ( )
inline

◆ Create()

template<int N_dim>
void ibm::IBMCart< N_dim >::Create ( int  id_,
blockelm::CartBlock< N_dim > &  block,
std::string  filename,
tml::tmlnode ibtml 
)
inline

References ibm::IBMBase< N_dim >::Create(), and ibm::IBMCart< N_dim >::ptr_block.

Here is the call graph for this function:

◆ Init()

template<int N_dim>
void ibm::IBMCart< N_dim >::Init ( )
inline

References ibm::IBMCart< N_dim >::InitFilter(), and ibm::IBMBase< N_dim >::LoadLagPoints().

Here is the call graph for this function:

◆ InitFilter() [1/3]

template<int N_dim>
void ibm::IBMCart< N_dim >::InitFilter ( )
inline

◆ InitFilter() [2/3]

◆ InitFilter() [3/3]

template<int N_dim>
void ibm::IBMCart< N_dim >::InitFilter ( const std::vector< std::vector< Real >> &  bds)
inline

◆ InterpFromEToL()

template<int N_dim>
Real ibm::IBMCart< N_dim >::InterpFromEToL ( int  ind_ibpnt,
Field in 
)
inline

◆ IsInside()

template<int N_dim>
virtual bool ibm::IBMCart< N_dim >::IsInside ( const blin::Vecr< N_dim > &  pos)
inlinevirtual

◆ IsInsideWithGhostWidth()

template<int N_dim>
virtual bool ibm::IBMCart< N_dim >::IsInsideWithGhostWidth ( const blin::Vecr< N_dim > &  pos)
inlinevirtual

◆ IsInsideWithMaxCollisionWidth()

template<int N_dim>
virtual bool ibm::IBMCart< N_dim >::IsInsideWithMaxCollisionWidth ( const blin::Vecr< N_dim > &  pos)
inlinevirtual

◆ LocalInternalForce()

◆ Perpare() [1/2]

template<int N_dim>
virtual void ibm::IBMCart< N_dim >::Perpare ( )
inlinevirtual

Implements ibm::IBMBase< N_dim >.

References ibm::IBMBase< N_dim >::dr, ibm::IBMCart< N_dim >::ptr_block, and ibm::IBMCart< N_dim >::UpdateNearestGridIndex().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Perpare() [2/2]

template<int N_dim>
void ibm::IBMCart< N_dim >::Perpare ( blockelm::CartBlock< N_dim > &  block)
inline

◆ UpdateNearestGridIndex() [1/2]

template<int N_dim>
void ibm::IBMCart< N_dim >::UpdateNearestGridIndex ( blockelm::CartField< Real, N_dim > &  in)
inline

◆ UpdateNearestGridIndex() [2/2]

template<int N_dim>
void ibm::IBMCart< N_dim >::UpdateNearestGridIndex ( blockelm::CartMesh< N_dim > &  mesh)
inline

References ibm::IBMBase< N_dim >::ibpoints, quadpack::max(), ibm::IBMCart< N_dim >::max_gridind, blockelm::CartMesh< N_dim >::meshc, quadpack::min(), and ibm::IBMCart< N_dim >::min_gridind.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ boxfilter

template<int N_dim>
compgeo::SimpleCartBoxZone<N_dim> ibm::IBMCart< N_dim >::boxfilter

◆ coll_width

template<int N_dim>
std::vector<Real> ibm::IBMCart< N_dim >::coll_width

◆ ghost_width

template<int N_dim>
std::vector<Real> ibm::IBMCart< N_dim >::ghost_width

◆ max_gridind

template<int N_dim>
Veci<N_dim> ibm::IBMCart< N_dim >::max_gridind

◆ min_gridind

template<int N_dim>
Veci<N_dim> ibm::IBMCart< N_dim >::min_gridind

◆ ptr_block

template<int N_dim>
blockelm::CartBlock<N_dim>* ibm::IBMCart< N_dim >::ptr_block = nullptr

◆ ptr_fieldlist

template<int N_dim>
std::vector<blockelm::CartField<Real, N_dim> *> ibm::IBMCart< N_dim >::ptr_fieldlist

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