RectangularWomersleyImpedanceTube< ELEMENT > Class Template Reference

Specific Womersley impedance tube for a rectangular cross-section. More...

+ Inheritance diagram for RectangularWomersleyImpedanceTube< ELEMENT >:

Public Member Functions

 RectangularWomersleyImpedanceTube (const double &length, typename WomersleyImpedanceTubeBase< ELEMENT, 2 >::PrescribedVolumeFluxFctPt prescribed_volume_flux_fct_pt)
 
Meshbuild_mesh_and_apply_boundary_conditions (TimeStepper *time_stepper_pt)
 
- Public Member Functions inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, 2 >
 WomersleyImpedanceTubeBase (const double &length, PrescribedVolumeFluxFctPt prescribed_volume_flux_fct_pt)
 
 WomersleyImpedanceTubeBase (const double &length, Mesh *navier_stokes_outflow_mesh_pt)
 
doublep_out ()
 Access fct to outlet pressure. More...
 
void setup ()
 
void setup (double *re_st_pt, const double &dt, const double &q_initial, TimeStepper *time_stepper_pt=0)
 
WomersleyProblem< ELEMENT, DIM > * womersley_problem_pt ()
 Access to underlying Womersley problem. More...
 
void shift_time_values (const double &dt)
 
double total_volume_flux_into_impedance_tube ()
 
void get_response (double &p_in, double &dp_in_dq)
 
- Public Member Functions inherited from oomph::TemplateFreeWomersleyImpedanceTubeBase
 TemplateFreeWomersleyImpedanceTubeBase ()
 Empty constructor. More...
 
virtual ~TemplateFreeWomersleyImpedanceTubeBase ()
 Empty virtual destructor. More...
 

Additional Inherited Members

- Public Types inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, 2 >
typedef double(* PrescribedVolumeFluxFctPt) (const double &time)
 
- Static Public Attributes inherited from oomph::TemplateFreeWomersleyImpedanceTubeBase
static double Zero = 0.0
 Zero! More...
 
- Protected Member Functions inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, 2 >
void precompute_aux_integrals ()
 
- Protected Attributes inherited from oomph::WomersleyImpedanceTubeBase< ELEMENT, 2 >
double Length
 Length of the tube. More...
 
double Dp_in_dq
 
doubleCurrent_volume_flux_pt
 
WomersleyProblem< ELEMENT, DIM > * Womersley_problem_pt
 
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
 
std::map< unsigned, double > * Aux_integral_pt
 

Detailed Description

template<class ELEMENT>
class RectangularWomersleyImpedanceTube< ELEMENT >

Specific Womersley impedance tube for a rectangular cross-section.

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

Constructor & Destructor Documentation

◆ RectangularWomersleyImpedanceTube()

template<class ELEMENT >
RectangularWomersleyImpedanceTube< ELEMENT >::RectangularWomersleyImpedanceTube ( const double length,
typename WomersleyImpedanceTubeBase< ELEMENT, 2 >::PrescribedVolumeFluxFctPt  prescribed_volume_flux_fct_pt 
)
inline

Constructor: Pass length and function that prescribes the volume flux to constructor of underlying base class

100  :
101  WomersleyImpedanceTubeBase<ELEMENT,2>(length, prescribed_volume_flux_fct_pt)
102  {}

Member Function Documentation

◆ build_mesh_and_apply_boundary_conditions()

template<class ELEMENT >
Mesh* RectangularWomersleyImpedanceTube< ELEMENT >::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, 2 >.

110  {
111 
112  // Setup mesh
113 
114  // Number of elements in x and y directions
115  unsigned nx=5;
116  unsigned ny=5;
117 
118  // Lengths in x and y directions
119  double lx=1.0;
120  double ly=1.0;
121 
122  // Build mesh
123  Mesh* my_mesh_pt =
124  new RectangularQuadMesh<ELEMENT >(nx,ny,lx,ly,time_stepper_pt);
125 
126 
127  // Set the boundary conditions for this problem:
128 
129  // All nodes are free by default -- just pin the ones that have
130  // Dirichlet conditions here.
131  unsigned n_bound = my_mesh_pt->nboundary();
132  for(unsigned b=0;b<n_bound;b++)
133  {
134  unsigned n_node = my_mesh_pt->nboundary_node(b);
135  for (unsigned n=0;n<n_node;n++)
136  {
137  my_mesh_pt->boundary_node_pt(b,n)->pin(0);
138  }
139  } // end of set boundary conditions
140 
141  return my_mesh_pt;
142 
143  }
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
Scalar * b
Definition: benchVecAdd.cpp:17
void pin(const unsigned &i)
Pin the i-th stored variable.
Definition: nodes.h:385
Definition: mesh.h:67
unsigned long nboundary_node(const unsigned &ibound) const
Return number of nodes on a particular boundary.
Definition: mesh.h:833
unsigned nboundary() const
Return number of boundaries.
Definition: mesh.h:827
Node *& boundary_node_pt(const unsigned &b, const unsigned &n)
Return pointer to node n on boundary b.
Definition: mesh.h:493
Definition: rectangular_quadmesh.template.h:59
const double ly
Definition: ConstraintElementsUnitTest.cpp:34
const double lx
Definition: ConstraintElementsUnitTest.cpp:33
const unsigned nx
Definition: ConstraintElementsUnitTest.cpp:30
const unsigned ny
Definition: ConstraintElementsUnitTest.cpp:31

References b, oomph::Mesh::boundary_node_pt(), Mesh_Parameters::lx, Mesh_Parameters::ly, n, oomph::Mesh::nboundary(), oomph::Mesh::nboundary_node(), Mesh_Parameters::nx, Mesh_Parameters::ny, and oomph::Data::pin().


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