30 #ifndef OOMPH_QUARTER_PIPE_MESH_TEMPLATE_CC
31 #define OOMPH_QUARTER_PIPE_MESH_TEMPLATE_CC
virtual void set_coordinates_on_boundary(const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta)
Set the vector of the k-th generalised boundary coordinates on mesh boundary b. Broken virtual interf...
QuarterPipeMesh(const unsigned &ntheta, const unsigned &nr, const unsigned &nz, const double &rmin, const double &rmax, const double &length, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor: Pass number of elements in various directions, the inner and outer radius and the length...
Node *& boundary_node_pt(const unsigned &b, const unsigned &n)
Return pointer to node n on boundary b.
std::vector< bool > Boundary_coordinate_exists
Vector of boolean data that indicates whether the boundary coordinates have been set for the boundary...
Simple cubic 3D Brick mesh class.
A general Finite Element class.
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
QuarterPipeDomain * Domain_pt
Pointer to domain.
unsigned long nboundary_node(const unsigned &ibound) const
Return number of nodes on a particular boundary.
unsigned long nelement() const
Return number of elements in the mesh.
const unsigned & nz() const
Access function for number of elements in y directions.
virtual void set_macro_elem_pt(MacroElement *macro_elem_pt)
Set pointer to macro element – can be overloaded in derived elements to perform additional tasks...
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Number of elements axial direction.
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
Number of elements radial direction.
Domain representing a quarter pipe.
virtual void node_update(const bool &update_all_solid_nodes=false)
Update nodal positions in response to changes in the domain shape. Uses the FiniteElement::get_x(...) function for FiniteElements and doesn't do anything for other element types. If a MacroElement pointer has been set for a FiniteElement, the MacroElement representation is used to update the nodal positions; if not get_x(...) uses the FE interpolation and thus leaves the nodal positions unchanged. Virtual, so it can be overloaded by specific meshes, such as AlgebraicMeshes or SpineMeshes. Generally, this function updates the position of all nodes in response to changes in the boundary position. However, we ignore all SolidNodes since their position is computed as part of the solution – unless the bool flag is set to true. Such calls are typically made when the initial mesh is created and/or after a mesh has been refined repeatedly before the start of the computation.
Number of elements azimuthal direction.
Base class for time-stepping schemes. Timestepper provides an approximation of the temporal derivativ...