14#include "../navierstokes/navierstokes.h"
34 IBPMSolver(
const MPI_Comm &world,
const YAML::Node &node);
48 PetscErrorCode
init(
const MPI_Comm &world,
const YAML::Node &node);
55 PetscErrorCode
write();
body::BodyPackBase, type::BodyPack, and factory function.
Immersed-boundary method proposed by Taira and Colonius (2007).
virtual PetscErrorCode writeRestartDataHDF5(const std::string &filePath)
Write data required to restart a simulation into a HDF5 file.
virtual PetscErrorCode createOperators()
Create operators.
PetscErrorCode init(const MPI_Comm &world, const YAML::Node &node)
Initialize the IBPM solver.
~IBPMSolver()
Default destructor.
virtual PetscErrorCode writeForcesASCII()
Write the forces acting on the bodies into an ASCII file.
PetscLogStage stageIntegrateForces
Log stage for integrating the Lagrangian forces.
virtual PetscErrorCode createVectors()
Create vectors.
virtual PetscErrorCode readRestartDataHDF5(const std::string &filePath)
Read data required to restart a simulation from a HDF5 file.
PetscErrorCode write()
Write solution, forces, and solvers info to files.
PetscErrorCode destroy()
Manually destroy data.
IBPMSolver()=default
Default constructor.
virtual PetscErrorCode assembleRHSPoisson()
Assemble the RHS vector of the Poisson system.
virtual PetscErrorCode writeSolutionHDF5(const std::string &filePath)
Write the solution fields into a HDF5 file.
virtual PetscErrorCode setNullSpace()
Set Poisson nullspace or pin pressure at a reference point.
IS isDE[2]
Global index sets for pressure field and Lagrangian forces.
petibm::type::BodyPack bodies
Pack of immersed bodies.
Vec P
PETSc Vec object with pressure field and Lagrangian forces.
PetscViewer forcesViewer
ASCII PetscViewer object to output the forces.
Solve the incompressible Navier-Stokes equations with a projection method (Perot 1993).
PetscErrorCode ioInitialData()
Read or write initial data.
PetscErrorCode advance()
Advance the solution by one time step.
bool finished()
Evaluate if the simulation is finished.
std::shared_ptr< body::BodyPackBase > BodyPack
Definition of type::BodyPack.