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 (double spacing, ChSystem *sys=nullptr) | |
| 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... | |
| virtual void | Initialize () override |
| Complete construction of the FSI problem and initialize the FSI system. More... | |
Public Member Functions inherited from chrono::fsi::sph::ChFsiProblemCartesian | |
| ChFsiProblemCartesian (double spacing, ChSystem *sys=nullptr) | |
| 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... | |
Public Member Functions inherited from chrono::fsi::sph::ChFsiProblemSPH | |
| void | SetVerbose (bool verbose) |
| Enable verbose output during construction of ChFsiProblemSPH (default: false). | |
| void | AttachMultibodySystem (ChSystem *sys) |
| Attach Chrono MBS system. | |
| std::shared_ptr< ChFsiSystemSPH > | GetFsiSystemSPH () |
| Access the underlying FSI system. | |
| std::shared_ptr< 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 (NodeDirectionsMode mode) |
| Enable use and set method of obtaining FEA node directions for generating FEA BCE marker location. 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 | PrintStats () const |
| Print the FSI statistics. | |
| void | PrintTimeSteps (const std::string &path) const |
| 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 | |
Protected Types inherited from chrono::fsi::sph::ChFsiProblemSPH | |
| typedef std::unordered_set< ChVector3i, CoordHash > | GridPoints |
| Grid points with integer coordinates. | |
Protected Member Functions inherited from chrono::fsi::sph::ChFsiProblemSPH | |
| ChFsiProblemSPH (double spacing, ChSystem *sys=nullptr) | |
| 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 () |
Protected Attributes inherited from chrono::fsi::sph::ChFsiProblemSPH | |
| std::shared_ptr< ChFsiFluidSystemSPH > | m_sysSPH |
| underlying Chrono SPH system | |
| std::shared_ptr< ChFsiSystemSPH > | m_sysFSI |
| underlying Chrono FSI system | |
| ChSystem * | m_sysMBS |
| associated MBS system | |
| std::shared_ptr< 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< SphParticleRelocator > | 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 | ( | double | spacing, |
| ChSystem * | sys = nullptr |
||
| ) |
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
◆ Initialize()
|
overridevirtual |
Complete construction of the FSI problem and initialize the FSI system.
After this call, no additional solid bodies should be added to the FSI problem.
Reimplemented from chrono::fsi::sph::ChFsiProblemSPH.
◆ 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
Public Member Functions inherited from