27#ifndef OOMPH_ANNULAR_MESH_HEADER
28#define OOMPH_ANNULAR_MESH_HEADER
44 template<
class ELEMENT>
60 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
80 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
105 template<
class ELEMENT>
125 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
152 for (
unsigned i = 0;
i <
nr;
i++)
159 dynamic_cast<ELEMENT*
>(this->
element_pt((
i + 1) * ntheta - 1))
165 using namespace QuadTreeNames;
166 for (
unsigned i = 0;
i <
nr;
i++)
194 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
220 for (
unsigned i = 0;
i <
nr;
i++)
227 dynamic_cast<ELEMENT*
>(this->
element_pt((
i + 1) * ntheta - 1))
233 using namespace QuadTreeNames;
234 for (
unsigned i = 0;
i <
nr;
i++)
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
static Steady< 0 > Default_TimeStepper
Default Steady Timestepper, to be used in default arguments to Mesh constructors.
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(....
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
unsigned long nelement() const
Return number of elements in the mesh.
RectangularQuadMesh is a two-dimensional mesh of Quad elements with Nx elements in the "x" (horizonal...
Intermediate mesh class that implements the mesh adaptation functions specified in the TreeBasedRefin...
void setup_quadtree_forest()
Set up QuadTreeForest. Wipes any existing tree structure below the minimum refinement level and regar...
/////////////////////////////////////////////////////////////////// /////////////////////////////////...
RefineableTwoDAnnularMesh(const bool &periodic, const double &azimuthal_fraction, const unsigned &ntheta, const unsigned &nr, const double &a, const double &h, const double &phi, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor; rotate mesh by angle phi.
AnnularDomain * Domain_pt
Pointer to domain.
RefineableTwoDAnnularMesh(const bool &periodic, const double &azimuthal_fraction, const unsigned &ntheta, const unsigned &nr, const double &a, const double &h, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor.
//////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////// //////////////////////////////...
2D annular mesh with a unit circle in the middle and a layer of thickness h surrounding it.
TwoDAnnularMesh(const bool &periodic, const double &azimuthal_fraction, const unsigned &ntheta, const unsigned &nr, const double &a, const double &h, const double &phi, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor; rotate mesh by angle phi.
TwoDAnnularMesh(const bool &periodic, const double &azimuthal_fraction, const unsigned &ntheta, const unsigned &nr, const double &a, const double &h, TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Constructor.
void wrap_into_annular_shape(const double &a, const double &h, const double &azimuthal_fraction, const double &phi)
Wrap mesh into annular shape.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...