Public Member Functions | Private Member Functions | Private Attributes | List of all members
OscRingNStProblem< ELEMENT > Class Template Reference
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 enslaved. 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 enslaved. 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 89 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 213 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 100 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 99 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 129 of file osc_ring_macro.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 130 of file osc_ring_alg.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 108 of file osc_ring_macro.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 109 of file osc_ring_alg.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 enslaved.

Definition at line 117 of file osc_ring_macro.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 enslaved.

Definition at line 118 of file osc_ring_alg.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 111 of file osc_ring_macro.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 112 of file osc_ring_alg.cc.

◆ doc_solution() [1/2]

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

Doc the solution.

◆ doc_solution() [2/2]

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

◆ dump_it() [1/2]

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

Dump problem data.

◆ dump_it() [2/2]

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

Dump problem data.

Dump the solution.

Definition at line 691 of file osc_ring_alg.cc.

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

◆ fluid_mesh_pt() [1/2]

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

Access function for the fluid mesh.

Definition at line 166 of file osc_ring_macro.cc.

◆ fluid_mesh_pt() [2/2]

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

◆ restart() [1/2]

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

Read problem data.

◆ restart() [2/2]

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

Read problem data.

Read solution from disk.

Definition at line 708 of file osc_ring_alg.cc.

Referenced by main().

◆ 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() [2/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 404 of file osc_ring_alg.cc.

References OscRingNStProblem< ELEMENT >::fluid_mesh_pt(), and OscRingNStProblem< ELEMENT >::Wall_pt.

Referenced by main().

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

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

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

Definition at line 735 of file osc_ring_alg.cc.

References OscRingNStProblem< ELEMENT >::doc_solution(), OscRingNStProblem< ELEMENT >::fluid_mesh_pt(), OscRingNStProblem< ELEMENT >::Trace_file, and OscRingNStProblem< ELEMENT >::write_trace_file_header().

Referenced by main().

◆ wall_pt() [1/2]

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

Get pointer to wall as geometric object.

Definition at line 102 of file osc_ring_macro.cc.

◆ wall_pt() [2/2]

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

Get pointer to wall as geometric object.

Definition at line 103 of file osc_ring_alg.cc.

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

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

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

Member Data Documentation

◆ Fluid_mesh_pt [1/2]

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

Pointer to fluid mesh.

Definition at line 189 of file osc_ring_macro.cc.

◆ Fluid_mesh_pt [2/2]

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

Pointer to fluid mesh.

Definition at line 190 of file osc_ring_alg.cc.

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

◆ IC_Fct_pt

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

Function pointer to set the intial condition.

Definition at line 184 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 203 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::doc_solution(), and OscRingNStProblem< ELEMENT >::OscRingNStProblem().

◆ Trace_file

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

◆ 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 199 of file osc_ring_alg.cc.

Referenced by OscRingNStProblem< ELEMENT >::doc_solution(), and 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 193 of file osc_ring_alg.cc.

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

◆ Wall_pt

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

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