Description
Class to set up a Chrono::FSI problem using particles and markers on a cylindrical coordinates grid.
#include <ChFsiProblem.h>
Public Member Functions | |
ChFsiProblemCylindrical (ChSystem &sys, double spacing) | |
Create a ChFsiProblem object. More... | |
void | Construct (double radius_inner, double radius_outer, double height, const ChVector3d &pos, bool bottom_wall, double side_walls) |
Construct SPH particles and optionally BCE markers in a cylindrical annulus of given dimensions. More... | |
size_t | AddCylindricalContainer (double radius_inner, double radius_outer, double height, const ChVector3d &pos, bool bottom_wall, bool side_walls, bool top_wall) |
Add fixed BCE markers, representing a cylindrical annulus container for the computational domain. More... | |
Public Member Functions inherited from chrono::fsi::ChFsiProblem | |
void | SetVerbose (bool verbose) |
Enable verbose output during construction of ChFsiProblem (default: false). | |
ChSystem & | GetSystyemMBS () |
Access the underlying MBS system. | |
ChSystemFsi & | GetSystemFSI () |
Access the underlying FSI system. | |
size_t | AddRigidBody (std::shared_ptr< ChBody > body, const chrono::utils::ChBodyGeometry &geometry, bool check_embedded, bool use_grid_bce=false) |
Add a rigid body to the FSI problem. More... | |
size_t | AddRigidBodySphere (std::shared_ptr< ChBody > body, const ChVector3d &pos, double radius, bool use_grid_bce=false) |
size_t | AddRigidBodyBox (std::shared_ptr< ChBody > body, const ChFramed &pos, const ChVector3d &size) |
size_t | AddRigidBodyCylinderX (std::shared_ptr< ChBody > body, const ChFramed &pos, double radius, double length, bool use_grid_bce=false) |
size_t | AddRigidBodyMesh (std::shared_ptr< ChBody > body, const ChVector3d &pos, const std::string &obj_file, const ChVector3d &interior_point, double scale) |
void | RegisterParticlePropertiesCallback (std::shared_ptr< ParticlePropertiesCallback > callback) |
Register a callback for setting SPH particle initial properties. | |
void | SetComputationalDomainSize (ChAABB aabb) |
Explicitly set the computational domain limits. More... | |
void | Initialize () |
Complete construction of the FSI problem and initialize the FSI system. More... | |
std::shared_ptr< ChBody > | GetGroundBody () const |
Get the ground body. | |
size_t | GetNumSPHParticles () const |
Get number of SPH particles. | |
size_t | GetNumBoundaryBCEMarkers () const |
Get number of boundary BCE markers. | |
const ChAABB & | GetComputationalDomainSize () const |
Get limits of computational domain. | |
const ChAABB & | GetSPHBoundingBox () const |
Get limits of SPH volume. | |
const ChVector3d & | GetFsiBodyForce (std::shared_ptr< ChBody > body) const |
Return the FSI applied force on the specified body (as returned by AddRigidBody). More... | |
const ChVector3d & | GetFsiBodyTorque (std::shared_ptr< ChBody > body) const |
Return the FSI applied torque on on the specified body (as returned by AddRigidBody). More... | |
void | SaveInitialMarkers (const std::string &out_dir) const |
Save the set of initial SPH and BCE grid locations to files in the specified output directory. | |
Additional Inherited Members | |
Public Types inherited from chrono::fsi::ChFsiProblem | |
enum | WavemakerType { PISTON, FLAP } |
Wave generator types. | |
Protected Types inherited from chrono::fsi::ChFsiProblem | |
typedef std::unordered_set< ChVector3i, CoordHash > | GridPoints |
typedef std::vector< ChVector3d > | RealPoints |
Protected Member Functions inherited from chrono::fsi::ChFsiProblem | |
ChFsiProblem (ChSystem &sys, double spacing) | |
Create a ChFsiProblem object. More... | |
void | ProcessBody (RigidBody &b) |
Prune SPH markers that are inside the solid body volume. More... | |
int | ProcessBodyMesh (RigidBody &b, ChTriangleMeshConnected trimesh, const ChVector3d &interior_point) |
Prune SPH markers that are inside a body mesh volume. More... | |
Protected Attributes inherited from chrono::fsi::ChFsiProblem | |
ChSystemFsi | m_sysFSI |
underlying Chrono FSI system | |
ChSystem & | m_sys |
associated Chrono MBS system | |
double | m_spacing |
particle and marker spacing | |
std::shared_ptr< ChBody > | m_ground |
ground body | |
GridPoints | m_sph |
SPH particle grid locations. | |
GridPoints | m_bce |
boundary BCE marker grid locations | |
ChVector3d | m_offset_sph |
SPH particles offset. | |
ChVector3d | m_offset_bce |
boundary BCE particles offset | |
ChAABB | m_domain_aabb |
computational domain bounding box | |
ChAABB | m_sph_aabb |
SPH volume bounding box. | |
std::vector< RigidBody > | m_bodies |
list of FSI rigid bodies | |
std::unordered_map< std::shared_ptr< ChBody >, size_t > | m_fsi_bodies |
std::shared_ptr< ParticlePropertiesCallback > | m_props_cb |
callback for particle properties | |
bool | m_verbose |
if true, write information to standard output | |
bool | m_initialized |
set to 'true' once terrain is initialized | |
Constructor & Destructor Documentation
◆ ChFsiProblemCylindrical()
chrono::fsi::ChFsiProblemCylindrical::ChFsiProblemCylindrical | ( | ChSystem & | sys, |
double | spacing | ||
) |
Create a ChFsiProblem object.
No SPH parameters are set.
Member Function Documentation
◆ AddCylindricalContainer()
size_t chrono::fsi::ChFsiProblemCylindrical::AddCylindricalContainer | ( | double | radius_inner, |
double | radius_outer, | ||
double | height, | ||
const ChVector3d & | pos, | ||
bool | bottom_wall, | ||
bool | side_walls, | ||
bool | top_wall | ||
) |
Add fixed BCE markers, representing a cylindrical annulus container for the computational domain.
Set inner radius to zero to create a cylindrical container. The cylinder is constructed with its axis along the global Z axis. The specified dimensions refer to the interior of the cylindrical annulus.
- Parameters
-
radius_inner inner radius radius_outer outer radius height height pos reference position bottom_wall create bottom boundary side_walls create side boundaries top_wall create top boundary
◆ Construct()
void chrono::fsi::ChFsiProblemCylindrical::Construct | ( | double | radius_inner, |
double | radius_outer, | ||
double | height, | ||
const ChVector3d & | pos, | ||
bool | bottom_wall, | ||
double | side_walls | ||
) |
Construct SPH particles and optionally BCE markers in a cylindrical annulus of given dimensions.
Set inner radius to zero to create a cylindrical container. The reference position is the center of the bottom face of the cylinder; in other words, SPH particles are generated above this location and BCE markers for the bottom boundary are generated below this location. If created, the BCE markers for the bottom and side walls are adjacent to the SPH domain.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiProblem.h
- /builds/uwsbel/chrono/src/chrono_fsi/ChFsiProblem.cpp