Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
FSIRingProblem Class Reference

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...

Inheritance diagram for FSIRingProblem:

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_ELEMENTDoc_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...
 

Detailed Description

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.

Member Typedef Documentation

◆ FLUID_ELEMENT [1/2]

typedef AlgebraicElement<RefineableQCrouzeixRaviartElement<2> > FSIRingProblem::FLUID_ELEMENT
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.

◆ FLUID_ELEMENT [2/2]

typedef AlgebraicElement<RefineableQCrouzeixRaviartElement<2> > FSIRingProblem::FLUID_ELEMENT
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.

◆ SOLID_ELEMENT [1/2]

typedef FSIHermiteBeamElement FSIRingProblem::SOLID_ELEMENT
private

Typedef to specify the solid element used.

Definition at line 149 of file fsi_osc_ring.cc.

◆ SOLID_ELEMENT [2/2]

typedef FSIHermiteBeamElement FSIRingProblem::SOLID_ELEMENT
private

Typedef to specify the solid element used.

Definition at line 149 of file fsi_osc_ring_compare_jacs.cc.

Constructor & Destructor Documentation

◆ FSIRingProblem() [1/2]

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() [2/2]

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.

Member Function Documentation

◆ actions_after_adapt() [1/2]

void FSIRingProblem::actions_after_adapt ( )
inline

Update the problem specs after adaptation:

Definition at line 175 of file fsi_osc_ring.cc.

◆ actions_after_adapt() [2/2]

void FSIRingProblem::actions_after_adapt ( )
inline

Update the problem specs after adaptation:

Definition at line 175 of file fsi_osc_ring_compare_jacs.cc.

◆ actions_after_newton_solve() [1/2]

void FSIRingProblem::actions_after_newton_solve ( )
inline

Update after solve (empty)

Definition at line 160 of file fsi_osc_ring.cc.

◆ actions_after_newton_solve() [2/2]

void FSIRingProblem::actions_after_newton_solve ( )
inline

Update after solve (empty)

Definition at line 160 of file fsi_osc_ring_compare_jacs.cc.

◆ actions_before_newton_convergence_check() [1/2]

void FSIRingProblem::actions_before_newton_convergence_check ( )
inline

Update the problem specs before checking Newton convergence.

Definition at line 167 of file fsi_osc_ring.cc.

◆ actions_before_newton_convergence_check() [2/2]

void FSIRingProblem::actions_before_newton_convergence_check ( )
inline

Update the problem specs before checking Newton convergence.

Definition at line 167 of file fsi_osc_ring_compare_jacs.cc.

◆ actions_before_newton_solve() [1/2]

void FSIRingProblem::actions_before_newton_solve ( )
inline

Update before solve (empty)

Definition at line 163 of file fsi_osc_ring.cc.

◆ actions_before_newton_solve() [2/2]

void FSIRingProblem::actions_before_newton_solve ( )
inline

Update before solve (empty)

Definition at line 163 of file fsi_osc_ring_compare_jacs.cc.

◆ doc_solution() [1/2]

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().

◆ doc_solution() [2/2]

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.

◆ dynamic_run() [1/2]

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().

◆ dynamic_run() [2/2]

void FSIRingProblem::dynamic_run ( const unsigned &  i_case)

◆ set_fluid_initial_condition() [1/2]

void FSIRingProblem::set_fluid_initial_condition ( )
private

Setup initial condition for fluid.

Setup initial condition for fluid: Impulsive start.

Definition at line 279 of file fsi_osc_ring.cc.

◆ set_fluid_initial_condition() [2/2]

void FSIRingProblem::set_fluid_initial_condition ( )
private

Setup initial condition for fluid.

◆ set_initial_condition() [1/2]

void FSIRingProblem::set_initial_condition ( )
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().

◆ set_initial_condition() [2/2]

void FSIRingProblem::set_initial_condition ( )
private

Setup initial condition for both domains.

◆ set_wall_initial_condition() [1/2]

void FSIRingProblem::set_wall_initial_condition ( )
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.

◆ set_wall_initial_condition() [2/2]

void FSIRingProblem::set_wall_initial_condition ( )
private

Setup initial condition for wall.

Member Data Documentation

◆ Doc_displacement_elem_pt

SOLID_ELEMENT * FSIRingProblem::Doc_displacement_elem_pt
private

Element used for documenting displacement.

Definition at line 228 of file fsi_osc_ring.cc.

Referenced by FSIRingProblem().

◆ Eps_ampl

double FSIRingProblem::Eps_ampl
private

Amplitude of initial deformation.

Definition at line 249 of file fsi_osc_ring.cc.

◆ Fluid_mesh_pt

AlgebraicRefineableQuarterCircleSectorMesh< FLUID_ELEMENT > * FSIRingProblem::Fluid_mesh_pt
private

Pointer to fluid mesh.

Definition at line 234 of file fsi_osc_ring.cc.

Referenced by dynamic_run(), and FSIRingProblem().

◆ Fluid_time_stepper_pt

BDF< 2 > * FSIRingProblem::Fluid_time_stepper_pt
private

Pointer to fluid timestepper.

Definition at line 243 of file fsi_osc_ring.cc.

Referenced by FSIRingProblem().

◆ Pcos_duration

double FSIRingProblem::Pcos_duration
private

Duration of initial pcos.

Definition at line 255 of file fsi_osc_ring.cc.

Referenced by dynamic_run().

◆ Pcos_initial

double FSIRingProblem::Pcos_initial
private

Initial pcos.

Definition at line 252 of file fsi_osc_ring.cc.

Referenced by dynamic_run().

◆ Undef_geom_pt

GeomObject * FSIRingProblem::Undef_geom_pt
private

Pointer to geometric object that represents the undeformed wall shape.

Definition at line 237 of file fsi_osc_ring.cc.

Referenced by FSIRingProblem().

◆ Veloc_trace_node_pt

Node * FSIRingProblem::Veloc_trace_node_pt
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().

◆ Wall_mesh_pt

OneDLagrangianMesh< SOLID_ELEMENT > * FSIRingProblem::Wall_mesh_pt
private

Pointer to wall mesh.

Definition at line 231 of file fsi_osc_ring.cc.

Referenced by FSIRingProblem().

◆ Wall_time_stepper_pt

Newmark< 2 > * FSIRingProblem::Wall_time_stepper_pt
private

Pointer to wall timestepper.

Definition at line 240 of file fsi_osc_ring.cc.

Referenced by FSIRingProblem().


The documentation for this class was generated from the following files: