12#include "../decoupledibpm/decoupledibpm.h"
44 PetscErrorCode
init(
const MPI_Comm &world,
const YAML::Node &node);
50 PetscErrorCode
write();
72 virtual PetscErrorCode
moveBodies(
const PetscReal &ti);
82 const PetscReal &ti){PetscFunctionReturn(0);};
92 const PetscReal &ti){PetscFunctionReturn(0);};
Immersed-boundary method proposed by Li et. al. (2016).
bool finished()
Evaluate if the simulation is finished.
Helper class to solve cases with moving rigid bodies using the decoupled IBPM.
PetscErrorCode init(const MPI_Comm &world, const YAML::Node &node)
Initialize the decoupled IBPM solver with moving rigid bodies.
PetscErrorCode ioInitialData()
Read or write initial data.
Vec UB
Prescribed boundary velocity vector.
PetscLogStage stageMoveIB
Log stage for moving the bodies.
virtual PetscErrorCode setVelocityBodies(const PetscReal &ti)
Update the velocity of the Lagrangian points.
virtual PetscErrorCode writeBodies()
Write the coordinates of the Lagrangian points for each body.
~RigidKinematicsSolver()
Default destructor.
RigidKinematicsSolver()=default
Default constructor.
PetscErrorCode write()
Write solution, solver info, and body points to files.
PetscErrorCode destroy()
Manually destroy data.
PetscErrorCode advance()
Advance the solution by one time step.
virtual PetscErrorCode assembleRHSForces()
Assemble the right-hand side of the system for the forces.
virtual PetscErrorCode setCoordinatesBodies(const PetscReal &ti)
Update the position of the Lagrangian points.
virtual PetscErrorCode moveBodies(const PetscReal &ti)
Move the bodies and update the solver state.