FSI Ring problem: a fluid-structure interaction problem in which a viscous fluid bounded by an initially circular beam is set into motion by a small sinusoidal perturbation of the beam (the domain boundary). More...
Public Member Functions | |
FSIRingProblem (const unsigned &nelement_wall, const double &eps_ampl, const double &pcos_initial, const double &pcos_duration) | |
Constructor: Number of elements in wall mesh, amplitude of the initial wall deformation, amplitude of pcos perturbation and its duration. More... | |
void | actions_after_newton_solve () |
Update after solve (empty) More... | |
void | actions_before_newton_solve () |
Update before solve (empty) More... | |
void | actions_before_newton_convergence_check () |
Update the problem specs before checking Newton convergence. More... | |
void | actions_after_adapt () |
Update the problem specs after adaptation: More... | |
void | doc_solution (const unsigned &i, DocInfo &doc_info, ofstream &trace_file) |
Doc solution: Pass number of timestep, i (we append to tracefile after every timestep but do a full doc only at certain intervals), DocInfo object and tracefile. More... | |
void | dynamic_run () |
Do dynamic run. More... | |
FSIRingProblem (const unsigned &nelement_wall, const double &eps_ampl, const double &pcos_initial, const double &pcos_duration, const unsigned &i_case) | |
Constructor: Number of elements in wall mesh, amplitude of the initial wall deformation, amplitude of pcos perturbation and its duration. More... | |
void | actions_after_newton_solve () |
Update after solve (empty) More... | |
void | actions_before_newton_solve () |
Update before solve (empty) More... | |
void | actions_before_newton_convergence_check () |
Update the problem specs before checking Newton convergence. More... | |
void | actions_after_adapt () |
Update the problem specs after adaptation: More... | |
void | doc_solution (const unsigned &i, DocInfo &doc_info, ofstream &trace_file, const unsigned &i_case) |
Doc solution: Pass number of timestep, i (we append to tracefile after every timestep but do a full doc only at certain intervals), DocInfo object and tracefile. More... | |
void | dynamic_run (const unsigned &i_case) |
Do dynamic run. More... | |
Private Types | |
typedef AlgebraicElement< RefineableQCrouzeixRaviartElement< 2 > > | FLUID_ELEMENT |
There are very few element types that will work for this problem. Rather than passing the element type as a template parameter to the problem, we choose instead to use a typedef to specify the particular element fluid used. More... | |
typedef FSIHermiteBeamElement | SOLID_ELEMENT |
Typedef to specify the solid element used. More... | |
typedef AlgebraicElement< RefineableQCrouzeixRaviartElement< 2 > > | FLUID_ELEMENT |
There are very few element types that will work for this problem. Rather than passing the element type as a template parameter to the problem, we choose instead to use a typedef to specify the particular element fluid used. More... | |
typedef FSIHermiteBeamElement | SOLID_ELEMENT |
Typedef to specify the solid element used. More... | |
Private Member Functions | |
void | set_initial_condition () |
Setup initial condition for both domains. More... | |
void | set_wall_initial_condition () |
Setup initial condition for wall. More... | |
void | set_fluid_initial_condition () |
Setup initial condition for fluid. More... | |
void | set_initial_condition () |
Setup initial condition for both domains. More... | |
void | set_wall_initial_condition () |
Setup initial condition for wall. More... | |
void | set_fluid_initial_condition () |
Setup initial condition for fluid. More... | |
Private Attributes | |
SOLID_ELEMENT * | Doc_displacement_elem_pt |
Element used for documenting displacement. More... | |
OneDLagrangianMesh< SOLID_ELEMENT > * | Wall_mesh_pt |
Pointer to wall mesh. More... | |
AlgebraicRefineableQuarterCircleSectorMesh< FLUID_ELEMENT > * | Fluid_mesh_pt |
Pointer to fluid mesh. More... | |
GeomObject * | Undef_geom_pt |
Pointer to geometric object that represents the undeformed wall shape. More... | |
Newmark< 2 > * | Wall_time_stepper_pt |
Pointer to wall timestepper. More... | |
BDF< 2 > * | Fluid_time_stepper_pt |
Pointer to fluid timestepper. More... | |
Node * | Veloc_trace_node_pt |
Pointer to node on coarsest mesh on which velocity is traced. More... | |
double | Eps_ampl |
Amplitude of initial deformation. More... | |
double | Pcos_initial |
Initial pcos. More... | |
double | Pcos_duration |
Duration of initial pcos. More... | |
FSI Ring problem: a fluid-structure interaction problem in which a viscous fluid bounded by an initially circular beam is set into motion by a small sinusoidal perturbation of the beam (the domain boundary).
Definition at line 140 of file fsi_osc_ring.cc.
|
private |
There are very few element types that will work for this problem. Rather than passing the element type as a template parameter to the problem, we choose instead to use a typedef to specify the particular element fluid used.
Definition at line 146 of file fsi_osc_ring.cc.
|
private |
There are very few element types that will work for this problem. Rather than passing the element type as a template parameter to the problem, we choose instead to use a typedef to specify the particular element fluid used.
Definition at line 146 of file fsi_osc_ring_compare_jacs.cc.
|
private |
Typedef to specify the solid element used.
Definition at line 149 of file fsi_osc_ring.cc.
|
private |
Typedef to specify the solid element used.
Definition at line 149 of file fsi_osc_ring_compare_jacs.cc.
FSIRingProblem::FSIRingProblem | ( | const unsigned & | nelement_wall, |
const double & | eps_ampl, | ||
const double & | pcos_initial, | ||
const double & | pcos_duration | ||
) |
Constructor: Number of elements in wall mesh, amplitude of the initial wall deformation, amplitude of pcos perturbation and its duration.
Constructor for FSI ring problem. Pass number of wall elements and length of wall (in Lagrangian coordinates) amplitude of initial deformation, pcos perturbation and duration.
Definition at line 430 of file fsi_osc_ring.cc.
References Doc_displacement_elem_pt, Fluid_mesh_pt, Fluid_time_stepper_pt, Global_Physical_Variables::H, Global_Physical_Variables::Lambda_sq, oomph::SarahBL::N, Global_Physical_Variables::pcos_load(), Global_Physical_Variables::Q, Global_Physical_Variables::Re, Global_Physical_Variables::ReSt, Undef_geom_pt, Veloc_trace_node_pt, Wall_mesh_pt, and Wall_time_stepper_pt.
FSIRingProblem::FSIRingProblem | ( | const unsigned & | nelement_wall, |
const double & | eps_ampl, | ||
const double & | pcos_initial, | ||
const double & | pcos_duration, | ||
const unsigned & | i_case | ||
) |
Constructor: Number of elements in wall mesh, amplitude of the initial wall deformation, amplitude of pcos perturbation and its duration.
Constructor for FSI ring problem. Pass number of wall elements and length of wall (in Lagrangian coordinates) amplitude of initial deformation, pcos perturbation and duration.
Definition at line 431 of file fsi_osc_ring_compare_jacs.cc.
References Doc_displacement_elem_pt, Fluid_mesh_pt, Fluid_time_stepper_pt, Global_Physical_Variables::H, Global_Physical_Variables::Lambda_sq, oomph::SarahBL::N, Global_Physical_Variables::pcos_load(), Global_Physical_Variables::Q, Global_Physical_Variables::Re, Global_Physical_Variables::ReSt, Undef_geom_pt, Veloc_trace_node_pt, Wall_mesh_pt, and Wall_time_stepper_pt.
|
inline |
Update the problem specs after adaptation:
Definition at line 175 of file fsi_osc_ring.cc.
|
inline |
Update the problem specs after adaptation:
Definition at line 175 of file fsi_osc_ring_compare_jacs.cc.
|
inline |
Update after solve (empty)
Definition at line 160 of file fsi_osc_ring.cc.
|
inline |
Update after solve (empty)
Definition at line 160 of file fsi_osc_ring_compare_jacs.cc.
|
inline |
Update the problem specs before checking Newton convergence.
Definition at line 167 of file fsi_osc_ring.cc.
|
inline |
Update the problem specs before checking Newton convergence.
Definition at line 167 of file fsi_osc_ring_compare_jacs.cc.
|
inline |
Update before solve (empty)
Definition at line 163 of file fsi_osc_ring.cc.
|
inline |
Update before solve (empty)
Definition at line 163 of file fsi_osc_ring_compare_jacs.cc.
void FSIRingProblem::doc_solution | ( | const unsigned & | i, |
DocInfo & | doc_info, | ||
ofstream & | trace_file | ||
) |
Doc solution: Pass number of timestep, i (we append to tracefile after every timestep but do a full doc only at certain intervals), DocInfo object and tracefile.
Document solution: Pass number of timestep, i; we append to trace file at every timestep and do a full doc only after a certain number of steps.
Output the solution using 5x5 plot points
Definition at line 352 of file fsi_osc_ring.cc.
Referenced by dynamic_run().
void FSIRingProblem::doc_solution | ( | const unsigned & | i, |
DocInfo & | doc_info, | ||
ofstream & | trace_file, | ||
const unsigned & | i_case | ||
) |
Doc solution: Pass number of timestep, i (we append to tracefile after every timestep but do a full doc only at certain intervals), DocInfo object and tracefile.
Document solution: Pass number of timestep, i; we append to trace file at every timestep and do a full doc only after a certain number of steps.
Output the solution using 5x5 plot points
Definition at line 353 of file fsi_osc_ring_compare_jacs.cc.
void FSIRingProblem::dynamic_run | ( | ) |
Do dynamic run.
Solver loop to perform unsteady run.
Label for output
Perturbation pressure
Switch off perturbation pressure
Definition at line 656 of file fsi_osc_ring.cc.
References Global_Physical_Variables::Alpha_sq, Global_Physical_Variables::Density_ratio, doc_solution(), Fluid_mesh_pt, Global_Physical_Variables::H, Global_Physical_Variables::Pcos, Pcos_duration, Pcos_initial, Global_Physical_Variables::Pext, set_initial_condition(), and Global_Physical_Variables::set_params().
Referenced by main().
void FSIRingProblem::dynamic_run | ( | const unsigned & | i_case | ) |
Do dynamic run.
Solver loop to perform unsteady run.
Label for output
Perturbation pressure
Switch off perturbation pressure
Definition at line 699 of file fsi_osc_ring_compare_jacs.cc.
References Global_Physical_Variables::Alpha_sq, Global_Physical_Variables::Density_ratio, doc_solution(), Fluid_mesh_pt, Global_Physical_Variables::H, Global_Physical_Variables::Pcos, Pcos_duration, Pcos_initial, Global_Physical_Variables::Pext, set_initial_condition(), and Global_Physical_Variables::set_params().
|
private |
Setup initial condition for fluid.
Setup initial condition for fluid: Impulsive start.
Definition at line 279 of file fsi_osc_ring.cc.
|
private |
Setup initial condition for fluid.
|
private |
Setup initial condition for both domains.
Setup initial condition: When we're done here, all variables represent the state at the initial time.
Definition at line 264 of file fsi_osc_ring.cc.
Referenced by dynamic_run().
|
private |
Setup initial condition for both domains.
|
private |
Setup initial condition for wall.
Setup initial condition: Impulsive start either from deformed or undeformed wall shape.
Definition at line 318 of file fsi_osc_ring.cc.
References Global_Physical_Variables::H.
|
private |
Setup initial condition for wall.
|
private |
Element used for documenting displacement.
Definition at line 228 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().
|
private |
Amplitude of initial deformation.
Definition at line 249 of file fsi_osc_ring.cc.
|
private |
Pointer to fluid mesh.
Definition at line 234 of file fsi_osc_ring.cc.
Referenced by dynamic_run(), and FSIRingProblem().
|
private |
Pointer to fluid timestepper.
Definition at line 243 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().
|
private |
Duration of initial pcos.
Definition at line 255 of file fsi_osc_ring.cc.
Referenced by dynamic_run().
|
private |
|
private |
Pointer to geometric object that represents the undeformed wall shape.
Definition at line 237 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().
|
private |
Pointer to node on coarsest mesh on which velocity is traced.
Definition at line 246 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().
|
private |
Pointer to wall mesh.
Definition at line 231 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().
|
private |
Pointer to wall timestepper.
Definition at line 240 of file fsi_osc_ring.cc.
Referenced by FSIRingProblem().