Public Member Functions | Private Attributes | List of all members
oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM > Class Template Reference

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

#include <womersley_elements.h>

+ Inheritance diagram for oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >:

Public Member Functions

 WomersleyOutflowImpedanceTube (const double &length, Mesh *navier_stokes_outflow_mesh_pt, const unsigned &fixed_coordinate, const unsigned &w_index)
 Constructor: Pass length and mesh of face elements that are attached to the outflow cross-section of the Navier Stokes mesh to constructor of underlying base class. Also specify the coordinate (in the higher-dimensional Navier-Stokes mesh) that is constant in the outflow cross-section and the velocity component (in terms of the nodal index) that represents the outflow component – the latter is used to automatically apply the boundary conditions for the Womersley problem. More...
 
Meshbuild_mesh_and_apply_boundary_conditions (TimeStepper *time_stepper_pt)
 Implement pure virtual fct (defined in the base class WomersleyImpedanceTubeBase) that builds the mesh of Womersley elements (of the type specified by the template argument), using the specified timestepper. Also applies the boundary condition. More...
 
- Public Member Functions inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >
 WomersleyImpedanceTubeBase (const double &length, PrescribedVolumeFluxFctPt prescribed_volume_flux_fct_pt)
 Constructor: Specify length of tube and pointer to function that specifies the prescribed volume flux. Outlet pressure is set to zero. More...
 
 WomersleyImpedanceTubeBase (const double &length, Mesh *navier_stokes_outflow_mesh_pt)
 Constructor: Specify length of tube and the pointer to the mesh of either NavierStokesImpedanceTractionElements or NavierStokesFluxControlElements that are attached to the outflow cross-section of a (higher-dimensional) Navier Stokes mesh and provide the inflow into the ImpedanceTube. Outlet pressure is set to zero. More...
 
double & p_out ()
 Access fct to outlet pressure. More...
 
void setup ()
 Set up the Womersley tubes so that a subsequent call to get_response(...) computes the inlet pressure for the currently prescribed instantaneous flow rate. Steady version! More...
 
void setup (double *re_st_pt, const double &dt, const double &q_initial, TimeStepper *time_stepper_pt=0)
 Set up the Womersley tubes so that a subsequent call to get_response(...) computes the inlet pressure for the currently prescribed instantaneous flow rate, assuming that at all previous times the tube conveyed steady, fully-developed flow with flowrate q_initial. dt specifies the timestep for the subsequent time integration. Specify: Womersley number, (constant) timestep, the initial volume flux (from which the subsequent impulsive start is performed) and, optionally the pointer to the timestepper to be used in the Womersley elements (defaults to BDF<2>). More...
 
WomersleyProblem< ELEMENT, DIM > * womersley_problem_pt ()
 Access to underlying Womersley problem. More...
 
void shift_time_values (const double &dt)
 Shift history values to allow coputation of next timestep. Note: When used with a full Navier-Stokes problem this function must be called in actions_before_implicit_timestep() More...
 
double total_volume_flux_into_impedance_tube ()
 Compute total current volume flux into the "impedance tube" that provides the flow resistance (flux is either obtained from the function that specifies it externally or by by adding up the flux through all NavierStokesImpedanceTractionElements in the mesh pointed to by the Navier_stokes_outflow_mesh_pt. More...
 
void get_response (double &p_in, double &dp_in_dq)
 Compute inlet pressure, p_in, required to achieve the currently imposed, instantaneous volume flux q prescribed by total_volume_flux_into_impedance_tube(), and its derivative, dp_in/dq. More...
 
- Public Member Functions inherited from oomph::TemplateFreeWomersleyImpedanceTubeBase
 TemplateFreeWomersleyImpedanceTubeBase ()
 Empty constructor. More...
 
virtual ~TemplateFreeWomersleyImpedanceTubeBase ()
 Empty virtual destructor. More...
 

Private Attributes

unsigned Fixed_coordinate
 The coordinate (in the higher-dimensional Navier-Stokes mesh) that is constant in the outflow cross-section. More...
 
unsigned W_index
 The velocity component (in terms of the nodal index) that represents the outflow component – the latter is used to automatically apply the boundary conditions for the Womersley problem. More...
 

Additional Inherited Members

- Public Types inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >
typedef double(* PrescribedVolumeFluxFctPt) (const double &time)
 Function pointer to fct that prescribes volume flux q=fct(t) – mainly used for validation purposes. More...
 
- Static Public Attributes inherited from oomph::TemplateFreeWomersleyImpedanceTubeBase
static double Zero = 0.0
 Zero! More...
 
- Protected Member Functions inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >
void precompute_aux_integrals ()
 Precompute auxiliary integrals required for the computation of the Jacobian in the NavierStokesImpedanceTractionElement. Also pass the pointer to the pre-computed integrals to the elements in the Navier_stokes_outflow_mesh_pt so they can refer to it. More...
 
- Protected Attributes inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >
double Length
 Length of the tube. More...
 
double Dp_in_dq
 Derivative of inflow pressure w.r.t. instantaenous volume flux (Note: Can be pre-computed) More...
 
double * Current_volume_flux_pt
 Pointer to double that specifies the currently imposed instantaneous volume flux into the impedance tube. This is used to communicate with the Womersley elements which require access to the flux via a pointer to a double. More...
 
WomersleyProblem< ELEMENT, DIM > * Womersley_problem_pt
 Pointer to Womersley problem that determines the pressure gradient along the tube. More...
 
double P_out
 Outlet pressure. More...
 
PrescribedVolumeFluxFctPt Prescribed_volume_flux_fct_pt
 Pointer to function that specifies the prescribed volume flux. More...
 
MeshNavier_stokes_outflow_mesh_pt
 Pointer to the mesh of NavierStokesImpedanceTractionElements that are attached to the outflow cross-section of the higher-dimensional Navier Stokes mesh and provide the inflow into the Impedance tube. More...
 
std::map< unsigned, double > * Aux_integral_pt
 Pointer to auxiliary integral, containing the derivative of the total volume flux through the outflow boundary of the (higher-dimensional) Navier-Stokes mesh w.r.t. to the discrete (global) (velocity) degrees of freedom. More...
 

Detailed Description

template<class ELEMENT, unsigned DIM>
class oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >

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

WomersleyImpedanceTube that attaches itself to the outflow of a Navier-Stokes mesh.

Definition at line 1826 of file womersley_elements.h.

Constructor & Destructor Documentation

◆ WomersleyOutflowImpedanceTube()

template<class ELEMENT , unsigned DIM>
oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::WomersleyOutflowImpedanceTube ( const double &  length,
Mesh navier_stokes_outflow_mesh_pt,
const unsigned &  fixed_coordinate,
const unsigned &  w_index 
)
inline

Constructor: Pass length and mesh of face elements that are attached to the outflow cross-section of the Navier Stokes mesh to constructor of underlying base class. Also specify the coordinate (in the higher-dimensional Navier-Stokes mesh) that is constant in the outflow cross-section and the velocity component (in terms of the nodal index) that represents the outflow component – the latter is used to automatically apply the boundary conditions for the Womersley problem.

Definition at line 1839 of file womersley_elements.h.

Member Function Documentation

◆ build_mesh_and_apply_boundary_conditions()

template<class ELEMENT , unsigned DIM>
Mesh* oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::build_mesh_and_apply_boundary_conditions ( TimeStepper time_stepper_pt)
inlinevirtual

Implement pure virtual fct (defined in the base class WomersleyImpedanceTubeBase) that builds the mesh of Womersley elements (of the type specified by the template argument), using the specified timestepper. Also applies the boundary condition.

Implements oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >.

Definition at line 1854 of file womersley_elements.h.

References oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::Fixed_coordinate, oomph::WomersleyImpedanceTubeBase< ELEMENT, DIM >::Navier_stokes_outflow_mesh_pt, and oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::W_index.

Member Data Documentation

◆ Fixed_coordinate

template<class ELEMENT , unsigned DIM>
unsigned oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::Fixed_coordinate
private

The coordinate (in the higher-dimensional Navier-Stokes mesh) that is constant in the outflow cross-section.

Definition at line 1871 of file womersley_elements.h.

Referenced by oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::build_mesh_and_apply_boundary_conditions().

◆ W_index

template<class ELEMENT , unsigned DIM>
unsigned oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::W_index
private

The velocity component (in terms of the nodal index) that represents the outflow component – the latter is used to automatically apply the boundary conditions for the Womersley problem.

Definition at line 1877 of file womersley_elements.h.

Referenced by oomph::WomersleyOutflowImpedanceTube< ELEMENT, DIM >::build_mesh_and_apply_boundary_conditions().


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