Public Member Functions | Private Member Functions | Private Attributes | List of all members
OscRingNStProblem< ELEMENT > Class Template Reference

///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// More...

Inheritance diagram for OscRingNStProblem< ELEMENT >:

Public Member Functions

 OscRingNStProblem (const double &dt, FiniteElement::UnsteadyExactSolutionFctPt IC_fct_pt)
 Constructor: Pass timestep and function pointer to the solution that provides the initial conditions for the fluid. More...
 
 ~OscRingNStProblem ()
 Destructor (empty) More...
 
GeomObject * wall_pt ()
 Get pointer to wall as geometric object. More...
 
void actions_after_newton_solve ()
 Update after solve (empty) More...
 
void actions_before_newton_solve ()
 Update the problem specs before solve (empty) More...
 
void actions_before_newton_convergence_check ()
 Update the problem specs before checking Newton convergence: Update the fluid mesh and re-set velocity boundary conditions – no slip velocity on the wall means that the velocity on the wall is dependent. More...
 
void actions_after_adapt ()
 Update the problem specs after adaptation: Set auxiliary update function that applies no slip on all boundary nodes and choose fluid pressure dof that drives the wall deformation. More...
 
void unsteady_run (const unsigned &ntsteps, const bool &restarted, DocInfo &doc_info)
 Run the time integration for ntsteps steps. More...
 
void set_initial_condition ()
 Set initial condition (incl previous timesteps) according to specified function. More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT > * fluid_mesh_pt ()
 Access function for the fluid mesh. More...
 
void dump_it (ofstream &dump_file, DocInfo doc_info)
 Dump problem data. More...
 
void restart (ifstream &restart_file)
 Read problem data. More...
 
 OscRingNStProblem (const double &dt, FiniteElement::UnsteadyExactSolutionFctPt IC_fct_pt)
 Constructor: Pass timestep and function pointer to the solution that provides the initial conditions for the fluid. More...
 
 ~OscRingNStProblem ()
 Destructor (empty) More...
 
GeomObject * wall_pt ()
 Get pointer to wall as geometric object. More...
 
void actions_after_newton_solve ()
 Update after solve (empty) More...
 
void actions_before_newton_solve ()
 Update the problem specs before solve (empty) More...
 
void actions_before_newton_convergence_check ()
 Update the problem specs before checking Newton convergence: Update the fluid mesh and re-set velocity boundary conditions – no slip velocity on the wall means that the velocity on the wall is dependent. More...
 
void actions_after_adapt ()
 Update the problem specs after adaptation: Set auxiliary update function that applies no slip on all boundary nodes and choose fluid pressure dof that drives the wall deformation. More...
 
void unsteady_run (const unsigned &ntsteps, const bool &restarted, DocInfo &doc_info)
 Run the time integration for ntsteps steps. More...
 
void set_initial_condition ()
 Set initial condition (incl previous timesteps) according to specified function. More...
 
void doc_solution (DocInfo &doc_info)
 Doc the solution. More...
 
MacroElementNodeUpdateRefineableQuarterCircleSectorMesh< ELEMENT > * fluid_mesh_pt ()
 Access function for the fluid mesh. More...
 
void dump_it (ofstream &dump_file, DocInfo doc_info)
 Dump problem data. More...
 
void restart (ifstream &restart_file)
 Read problem data. More...
 

Private Member Functions

void write_trace_file_header ()
 Write header for trace file. More...
 
void write_trace_file_header ()
 Write header for trace file. More...
 

Private Attributes

FiniteElement::UnsteadyExactSolutionFctPt IC_Fct_pt
 Function pointer to set the intial condition. More...
 
GeomObject * Wall_pt
 Pointer to wall. More...
 
AlgebraicRefineableQuarterCircleSectorMesh< ELEMENT > * Fluid_mesh_pt
 Pointer to fluid mesh. More...
 
Mesh * Wall_mesh_pt
 Pointer to wall mesh (contains only a single GeneralisedElement) More...
 
ofstream Trace_file
 Trace file. More...
 
Node * Veloc_trace_node_pt
 Pointer to node on coarsest mesh on which velocity is traced. More...
 
Node * Sarah_veloc_trace_node_pt
 Pointer to node in symmetry plane on coarsest mesh at which velocity is traced. More...
 
MacroElementNodeUpdateRefineableQuarterCircleSectorMesh< ELEMENT > * Fluid_mesh_pt
 Pointer to fluid mesh. More...
 

Detailed Description

template<class ELEMENT>
class OscRingNStProblem< ELEMENT >

///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////

Driver for oscillating ring problem: Wall performs oscillations that resemble eigenmodes of freely oscillating ring and drives viscous fluid flow. Mean radius of wall is adjustable and responds to a pressure value in the fluid to allow for mass conservation.

Definition at line 85 of file osc_ring_alg.cc.

Constructor & Destructor Documentation

◆ OscRingNStProblem() [1/2]

template<class ELEMENT >
OscRingNStProblem< ELEMENT >::OscRingNStProblem ( const double &  dt,
FiniteElement::UnsteadyExactSolutionFctPt  IC_fct_pt 
)

Constructor: Pass timestep and function pointer to the solution that provides the initial conditions for the fluid.

Constructor: Pass (constant) timestep and function pointer to the solution that provides the initial conditions for the fluid.

Definition at line 209 of file osc_ring_alg.cc.

References oomph::SarahBL::A, oomph::SarahBL::alpha, oomph::SarahBL::epsilon, OscRingNStProblem< ELEMENT >::fluid_mesh_pt(), OscRingNStProblem< ELEMENT >::Fluid_mesh_pt, oomph::SarahBL::N, oomph::SarahBL::Omega, Global_Physical_Variables::Re, Global_Physical_Variables::ReSt, OscRingNStProblem< ELEMENT >::Sarah_veloc_trace_node_pt, OscRingNStProblem< ELEMENT >::Veloc_trace_node_pt, OscRingNStProblem< ELEMENT >::Wall_mesh_pt, and OscRingNStProblem< ELEMENT >::Wall_pt.

◆ ~OscRingNStProblem() [1/2]

template<class ELEMENT >
OscRingNStProblem< ELEMENT >::~OscRingNStProblem ( )
inline

Destructor (empty)

Definition at line 96 of file osc_ring_alg.cc.

◆ OscRingNStProblem() [2/2]

template<class ELEMENT >
OscRingNStProblem< ELEMENT >::OscRingNStProblem ( const double &  dt,
FiniteElement::UnsteadyExactSolutionFctPt  IC_fct_pt 
)

Constructor: Pass timestep and function pointer to the solution that provides the initial conditions for the fluid.

◆ ~OscRingNStProblem() [2/2]

template<class ELEMENT >
OscRingNStProblem< ELEMENT >::~OscRingNStProblem ( )
inline

Destructor (empty)

Definition at line 95 of file osc_ring_macro.cc.

Member Function Documentation

◆ actions_after_adapt() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_after_adapt ( )
inline

Update the problem specs after adaptation: Set auxiliary update function that applies no slip on all boundary nodes and choose fluid pressure dof that drives the wall deformation.

Definition at line 126 of file osc_ring_alg.cc.

◆ actions_after_adapt() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_after_adapt ( )
inline

Update the problem specs after adaptation: Set auxiliary update function that applies no slip on all boundary nodes and choose fluid pressure dof that drives the wall deformation.

Definition at line 125 of file osc_ring_macro.cc.

◆ actions_after_newton_solve() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update after solve (empty)

Definition at line 105 of file osc_ring_alg.cc.

◆ actions_after_newton_solve() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_after_newton_solve ( )
inline

Update after solve (empty)

Definition at line 104 of file osc_ring_macro.cc.

◆ actions_before_newton_convergence_check() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_before_newton_convergence_check ( )
inline

Update the problem specs before checking Newton convergence: Update the fluid mesh and re-set velocity boundary conditions – no slip velocity on the wall means that the velocity on the wall is dependent.

Definition at line 114 of file osc_ring_alg.cc.

◆ actions_before_newton_convergence_check() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_before_newton_convergence_check ( )
inline

Update the problem specs before checking Newton convergence: Update the fluid mesh and re-set velocity boundary conditions – no slip velocity on the wall means that the velocity on the wall is dependent.

Definition at line 113 of file osc_ring_macro.cc.

◆ actions_before_newton_solve() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update the problem specs before solve (empty)

Definition at line 108 of file osc_ring_alg.cc.

◆ actions_before_newton_solve() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::actions_before_newton_solve ( )
inline

Update the problem specs before solve (empty)

Definition at line 107 of file osc_ring_macro.cc.

◆ doc_solution() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::doc_solution ( DocInfo &  doc_info)

◆ doc_solution() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::doc_solution ( DocInfo &  doc_info)

Doc the solution.

◆ dump_it() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::dump_it ( ofstream &  dump_file,
DocInfo  doc_info 
)

Dump problem data.

Dump the solution.

Definition at line 687 of file osc_ring_alg.cc.

◆ dump_it() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::dump_it ( ofstream &  dump_file,
DocInfo  doc_info 
)

Dump problem data.

◆ fluid_mesh_pt() [1/2]

template<class ELEMENT >
AlgebraicRefineableQuarterCircleSectorMesh<ELEMENT>* OscRingNStProblem< ELEMENT >::fluid_mesh_pt ( )
inline

Access function for the fluid mesh.

Definition at line 163 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ fluid_mesh_pt() [2/2]

template<class ELEMENT >
MacroElementNodeUpdateRefineableQuarterCircleSectorMesh<ELEMENT>* OscRingNStProblem< ELEMENT >::fluid_mesh_pt ( )
inline

Access function for the fluid mesh.

Definition at line 162 of file osc_ring_macro.cc.

◆ restart() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::restart ( ifstream &  restart_file)

Read problem data.

Read solution from disk.

Definition at line 704 of file osc_ring_alg.cc.

Referenced by main().

◆ restart() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::restart ( ifstream &  restart_file)

Read problem data.

◆ set_initial_condition() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::set_initial_condition

Set initial condition (incl previous timesteps) according to specified function.

Set initial condition: Assign previous and current values of the velocity from the velocity field specified via the function pointer.

Values are assigned so that the velocities and accelerations are correct for current time.

Definition at line 400 of file osc_ring_alg.cc.

Referenced by main().

◆ set_initial_condition() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::set_initial_condition ( )

Set initial condition (incl previous timesteps) according to specified function.

◆ unsteady_run() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::unsteady_run ( const unsigned &  ntsteps,
const bool &  restarted,
DocInfo &  doc_info 
)

Run the time integration for ntsteps steps.

Driver for timestepping the problem: Fixed timestep but guaranteed spatial accuracy. Beautiful, innit?

Definition at line 731 of file osc_ring_alg.cc.

Referenced by main().

◆ unsteady_run() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::unsteady_run ( const unsigned &  ntsteps,
const bool &  restarted,
DocInfo &  doc_info 
)

Run the time integration for ntsteps steps.

◆ wall_pt() [1/2]

template<class ELEMENT >
GeomObject* OscRingNStProblem< ELEMENT >::wall_pt ( )
inline

Get pointer to wall as geometric object.

Definition at line 99 of file osc_ring_alg.cc.

◆ wall_pt() [2/2]

template<class ELEMENT >
GeomObject* OscRingNStProblem< ELEMENT >::wall_pt ( )
inline

Get pointer to wall as geometric object.

Definition at line 98 of file osc_ring_macro.cc.

◆ write_trace_file_header() [1/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::write_trace_file_header
private

Write header for trace file.

Write trace file header.

Definition at line 856 of file osc_ring_alg.cc.

References Global_Physical_Variables::Re, and Global_Physical_Variables::ReSt.

◆ write_trace_file_header() [2/2]

template<class ELEMENT >
void OscRingNStProblem< ELEMENT >::write_trace_file_header ( )
private

Write header for trace file.

Member Data Documentation

◆ Fluid_mesh_pt [1/2]

template<class ELEMENT >
AlgebraicRefineableQuarterCircleSectorMesh<ELEMENT>* OscRingNStProblem< ELEMENT >::Fluid_mesh_pt
private

Pointer to fluid mesh.

Definition at line 186 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ Fluid_mesh_pt [2/2]

template<class ELEMENT >
MacroElementNodeUpdateRefineableQuarterCircleSectorMesh<ELEMENT>* OscRingNStProblem< ELEMENT >::Fluid_mesh_pt
private

Pointer to fluid mesh.

Definition at line 185 of file osc_ring_macro.cc.

◆ IC_Fct_pt

template<class ELEMENT >
FiniteElement::UnsteadyExactSolutionFctPt OscRingNStProblem< ELEMENT >::IC_Fct_pt
private

Function pointer to set the intial condition.

Definition at line 180 of file osc_ring_alg.cc.

◆ Sarah_veloc_trace_node_pt

template<class ELEMENT >
Node * OscRingNStProblem< ELEMENT >::Sarah_veloc_trace_node_pt
private

Pointer to node in symmetry plane on coarsest mesh at which velocity is traced.

Definition at line 199 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ Trace_file

template<class ELEMENT >
ofstream OscRingNStProblem< ELEMENT >::Trace_file
private

Trace file.

Definition at line 192 of file osc_ring_alg.cc.

◆ Veloc_trace_node_pt

template<class ELEMENT >
Node * OscRingNStProblem< ELEMENT >::Veloc_trace_node_pt
private

Pointer to node on coarsest mesh on which velocity is traced.

Definition at line 195 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ Wall_mesh_pt

template<class ELEMENT >
Mesh * OscRingNStProblem< ELEMENT >::Wall_mesh_pt
private

Pointer to wall mesh (contains only a single GeneralisedElement)

Definition at line 189 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ Wall_pt

template<class ELEMENT >
GeomObject * OscRingNStProblem< ELEMENT >::Wall_pt
private

Pointer to wall.

Definition at line 183 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::OscRingNStProblem().


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