Description
Class to construct a wavetank with a rigid piston or flap wavemaker mechanism.
The wavetank can include a beach for wave dissipation, by specifying a profile for the bottom.
#include <ChFsiProblemSPH.h>


Classes | |
class | Profile |
Interface for callback to specify wave tank profile. More... | |
Public Types | |
enum | WavemakerType { PISTON, FLAP } |
Wavemaker mechanism types. | |
Public Member Functions | |
ChFsiProblemWavetank (ChSystem &sys, double spacing) | |
Create a ChFsiProblemSPH object. More... | |
void | SetProfile (std::shared_ptr< Profile > profile, bool end_wall) |
Set the callback for the bottom tank profile and indicate if an end-wall is constructed. More... | |
void | SetLateralPeriodicBC (bool periodic_BC) |
Use periodic boundary conditions in lateral direction (default: false). More... | |
std::shared_ptr< ChBody > | ConstructWaveTank (WavemakerType type, const ChVector3d &pos, const ChVector3d &box_size, double depth, std::shared_ptr< ChFunction > actuation) |
Add a wave tank with a rigid-body wavemaker (piston-type or flap-type). More... | |
![]() | |
ChFsiProblemCartesian (ChSystem &sys, double spacing) | |
Create a ChFsiProblemSPH object. More... | |
void | Construct (const std::string &sph_file, const std::string &bce_file, const ChVector3d &pos) |
Construct using information from the specified files. More... | |
void | Construct (const ChVector3d &box_size, const ChVector3d &pos, int side_flags) |
Construct SPH particles and optionally BCE markers in a box of given dimensions. More... | |
void | Construct (const std::string &heightmap_file, double length, double width, const ChVector2d &height_range, double depth, bool uniform_depth, const ChVector3d &pos, int side_flags) |
Construct SPH particles and optionally BCE markers from a given heightmap. More... | |
size_t | AddBoxContainer (const ChVector3d &box_size, const ChVector3d &pos, int side_flags) |
Add fixed BCE markers, representing a container for the computational domain. More... | |
![]() | |
void | SetVerbose (bool verbose) |
Enable verbose output during construction of ChFsiProblemSPH (default: false). | |
ChFsiSystemSPH & | GetSystemFSI () |
Access the underlying FSI system. | |
ChFsiFluidSystemSPH & | GetFluidSystemSPH () |
Access the underlying SPH system. | |
ChSystem & | GetMultibodySystem () |
Access the underlying MBS system. | |
void | SetCfdSPH (const ChFsiFluidSystemSPH::FluidProperties &fluid_props) |
Enable solution of a CFD problem. | |
void | SetElasticSPH (const ChFsiFluidSystemSPH::ElasticMaterialProperties &mat_props) |
Enable solution of elastic SPH (for continuum representation of granular dynamics). More... | |
void | SetSPHParameters (const ChFsiFluidSystemSPH::SPHParameters &sph_params) |
Set SPH method parameters. | |
void | SetSplashsurfParameters (const ChFsiFluidSystemSPH::SplashsurfParameters ¶ms) |
Set surface reconstruction parameters (with splashsurf ). | |
void | AddRigidBody (std::shared_ptr< ChBody > body, std::shared_ptr< utils::ChBodyGeometry > geometry, bool check_embedded, bool use_grid_bce=false) |
Add a rigid body to the FSI problem. More... | |
void | AddRigidBodySphere (std::shared_ptr< ChBody > body, const ChVector3d &pos, double radius, bool use_grid_bce=false) |
void | AddRigidBodyBox (std::shared_ptr< ChBody > body, const ChFramed &pos, const ChVector3d &size) |
void | AddRigidBodyCylinderX (std::shared_ptr< ChBody > body, const ChFramed &pos, double radius, double length, bool use_grid_bce=false) |
void | AddRigidBodyMesh (std::shared_ptr< ChBody > body, const ChFramed &pos, const std::string &obj_file, const ChVector3d &interior_point, double scale) |
size_t | GetNumBCE (std::shared_ptr< ChBody > body) const |
Return the number of BCE markers associated with the specified rigid body. | |
void | UseNodeDirections (bool val) |
Enable/disable use of node directions when assigning BCE locations on FEA elements. More... | |
void | SetBcePattern1D (BcePatternMesh1D pattern, bool remove_center=false) |
Set the BCE marker pattern for 1D flexible solids for subsequent calls to AddFeaMesh. More... | |
void | SetBcePattern2D (BcePatternMesh2D pattern, bool remove_center=false) |
Set the BCE marker pattern for 2D flexible solids for subsequent calls to AddFeaMesh. More... | |
void | AddFeaMesh (std::shared_ptr< fea::ChMesh > mesh, bool check_embedded) |
Add an FEA mesh to the FSI problem. More... | |
void | RegisterParticlePropertiesCallback (std::shared_ptr< ParticlePropertiesCallback > callback) |
Register a callback for setting SPH particle initial properties. | |
void | SetGravitationalAcceleration (const ChVector3d &gravity) |
Set gravitational acceleration for both multibody and fluid systems. | |
void | SetStepSizeCFD (double step) |
Set integration step size for fluid dynamics. | |
void | SetStepsizeMBD (double step) |
Set integration step size for multibody dynamics. More... | |
void | SetComputationalDomain (const ChAABB &aabb, BoundaryConditions bc_type={BCType::NONE, BCType::NONE, BCType::NONE}) |
Explicitly set the computational domain limits. More... | |
void | Initialize () |
Complete construction of the FSI problem and initialize the FSI system. More... | |
void | DoStepDynamics (double step) |
Advance the dynamics of the underlying FSI system by the specified step. | |
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 & | GetComputationalDomain () const |
Get limits of computational domain. | |
const BoundaryConditions & | GetBoundaryConditionTypes () const |
Get the boundary condition type for the three sides of the 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... | |
double | GetRtfCFD () const |
Get current estimated RTF (real time factor) for the fluid system. | |
double | GetRtfMBD () const |
Get current estimated RTF (real time factor) for the multibody system. | |
void | SetOutputLevel (OutputLevel output_level) |
Set SPH simulation data output level (default: STATE_PRESSURE). More... | |
void | SaveOutputData (double time, const std::string &sph_dir, const std::string &fsi_dir) |
Save current SPH and solid data to files. 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. | |
void | WriteReconstructedSurface (const std::string &dir, const std::string &name, bool quiet=false) |
Reconstruct surface from the current SPH particle data cloud. More... | |
PhysicsProblem | GetPhysicsProblem () const |
std::string | GetPhysicsProblemString () const |
std::string | GetSphIntegrationSchemeString () const |
Additional Inherited Members | |
![]() | |
typedef std::unordered_set< ChVector3i, CoordHash > | GridPoints |
Grid points with integer coordinates. | |
![]() | |
ChFsiProblemSPH (ChSystem &sys, double spacing) | |
Create a ChFsiProblemSPH object. More... | |
void | ProcessBody (ChFsiFluidSystemSPH::FsiSphBody &b) |
Prune SPH markers that are inside the solid body volume. More... | |
int | ProcessBodyMesh (ChFsiFluidSystemSPH::FsiSphBody &b, ChTriangleMeshConnected trimesh, const ChVector3d &interior_point) |
Prune SPH markers that are inside a body mesh volume. More... | |
void | ProcessFeaMesh1D (ChFsiFluidSystemSPH::FsiSphMesh1D &m) |
Prune SPH markers that overlap with the FEA mesh BCE markers. | |
void | ProcessFeaMesh2D (ChFsiFluidSystemSPH::FsiSphMesh2D &m) |
Prune SPH markers that overlap with the FEA mesh BCE markers. | |
void | CreateParticleRelocator () |
void | BCEShift (const ChVector3d &shift_dist) |
void | SPHShift (const ChVector3d &shift_dist) |
void | SPHMoveAABB2AABB (const ChAABB &aabb_src, const ChIntAABB &aabb_dest) |
void | ForceProximitySearch () |
![]() | |
ChFsiFluidSystemSPH | m_sysSPH |
underlying Chrono SPH system | |
ChFsiSystemSPH | m_sysFSI |
underlying Chrono FSI system | |
ChFsiSplashsurfSPH | m_splashsurf |
surface reconstructor | |
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 | |
BoundaryConditions | m_bc_type |
boundary conditions in each direction | |
ChAABB | m_sph_aabb |
SPH volume bounding box. | |
std::unordered_map< std::shared_ptr< ChBody >, size_t > | m_fsi_bodies |
map from ChBody pointer to index in FSI body list | |
std::shared_ptr< ParticlePropertiesCallback > | m_props_cb |
callback for particle properties | |
std::unique_ptr< FsiParticleRelocator > | m_relocator |
bool | m_verbose |
if true, write information to standard output | |
bool | m_initialized |
if true, problem was initialized | |
Constructor & Destructor Documentation
◆ ChFsiProblemWavetank()
chrono::fsi::sph::ChFsiProblemWavetank::ChFsiProblemWavetank | ( | ChSystem & | sys, |
double | spacing | ||
) |
Create a ChFsiProblemSPH object.
No SPH parameters are set.
Member Function Documentation
◆ ConstructWaveTank()
std::shared_ptr< ChBody > chrono::fsi::sph::ChFsiProblemWavetank::ConstructWaveTank | ( | WavemakerType | type, |
const ChVector3d & | pos, | ||
const ChVector3d & | box_size, | ||
double | depth, | ||
std::shared_ptr< ChFunction > | actuation | ||
) |
Add a wave tank with a rigid-body wavemaker (piston-type or flap-type).
- Parameters
-
type wave generator type pos reference position box_size box dimensions depth fluid depth actuation actuation function
◆ SetLateralPeriodicBC()
|
inline |
Use periodic boundary conditions in lateral direction (default: false).
If not set, side boundary conditions are enforced by constructing lateral walls.
◆ SetProfile()
void chrono::fsi::sph::ChFsiProblemWavetank::SetProfile | ( | std::shared_ptr< Profile > | profile, |
bool | end_wall | ||
) |
Set the callback for the bottom tank profile and indicate if an end-wall is constructed.
By default, a tank with flat bottom and with end-wall is constructed
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_fsi/sph/ChFsiProblemSPH.h
- /builds/uwsbel/chrono/src/chrono_fsi/sph/ChFsiProblemSPH.cpp