27 #ifndef OOMPH_ANNULAR_MESH_HEADER
28 #define OOMPH_ANNULAR_MESH_HEADER
44 template<
class ELEMENT>
50 const double& azimuthal_fraction,
51 const unsigned& ntheta,
57 ntheta, nr, 1.0, 1.0, periodic, time_stepper_pt)
60 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
69 const double& azimuthal_fraction,
70 const unsigned& ntheta,
77 ntheta, nr, 1.0, 1.0, periodic, time_stepper_pt)
80 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
91 const double& azimuthal_fraction,
105 template<
class ELEMENT>
112 const bool& periodic,
113 const double& azimuthal_fraction,
114 const unsigned& ntheta,
120 ntheta, nr, 1.0, 1.0, periodic, time_stepper_pt),
122 periodic, azimuthal_fraction, ntheta, nr,
a, h, time_stepper_pt)
125 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
133 for (
unsigned ielem = 0; ielem < nel; ielem++)
152 for (
unsigned i = 0;
i < nr;
i++)
154 left_root_pt[
i] =
dynamic_cast<ELEMENT*
>(this->
element_pt(
i * ntheta))
159 dynamic_cast<ELEMENT*
>(this->
element_pt((
i + 1) * ntheta - 1))
165 using namespace QuadTreeNames;
166 for (
unsigned i = 0;
i < nr;
i++)
168 left_root_pt[
i]->neighbour_pt(
W) = right_root_pt[
i];
169 left_root_pt[
i]->set_neighbour_periodic(
W);
171 right_root_pt[
i]->neighbour_pt(
E) = left_root_pt[
i];
172 right_root_pt[
i]->set_neighbour_periodic(
E);
180 const bool& periodic,
181 const double& azimuthal_fraction,
182 const unsigned& ntheta,
189 ntheta, nr, 1.0, 1.0, periodic, time_stepper_pt),
191 periodic, azimuthal_fraction, ntheta, nr,
a, h, phi, time_stepper_pt)
194 MeshChecker::assert_geometric_element<QElementGeometricBase, ELEMENT>(2);
201 for (
unsigned ielem = 0; ielem < nel; ielem++)
220 for (
unsigned i = 0;
i < nr;
i++)
222 left_root_pt[
i] =
dynamic_cast<ELEMENT*
>(this->
element_pt(
i * ntheta))
227 dynamic_cast<ELEMENT*
>(this->
element_pt((
i + 1) * ntheta - 1))
233 using namespace QuadTreeNames;
234 for (
unsigned i = 0;
i < nr;
i++)
236 left_root_pt[
i]->neighbour_pt(
W) = right_root_pt[
i];
237 left_root_pt[
i]->set_neighbour_periodic(
W);
239 right_root_pt[
i]->neighbour_pt(
E) = left_root_pt[
i];
240 right_root_pt[
i]->set_neighbour_periodic(
E);
int i
Definition: BiCGSTAB_step_by_step.cpp:9
Annular domain.
Definition: annular_domain.h:40
MacroElement * macro_element_pt(const unsigned &i)
Access to i-th macro element.
Definition: domain.h:116
static Steady< 0 > Default_TimeStepper
The Steady Timestepper.
Definition: mesh.h:75
virtual void node_update(const bool &update_all_solid_nodes=false)
Definition: mesh.cc:287
const Vector< GeneralisedElement * > & element_pt() const
Return reference to the Vector of elements.
Definition: mesh.h:460
unsigned long nelement() const
Return number of elements in the mesh.
Definition: mesh.h:590
Definition: rectangular_quadmesh.template.h:59
Definition: refineable_quad_element.h:71
Definition: refineable_quad_mesh.h:53
void setup_quadtree_forest()
Definition: refineable_quad_mesh.h:88
Definition: annular_mesh.template.h:108
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.
Definition: annular_mesh.template.h:179
AnnularDomain * Domain_pt
Pointer to domain.
Definition: annular_mesh.template.h:247
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.
Definition: annular_mesh.template.h:111
Definition: timesteppers.h:231
Definition: annular_mesh.template.h:46
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.
Definition: annular_mesh.template.h:68
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.
Definition: annular_mesh.template.h:49
void wrap_into_annular_shape(const double &a, const double &h, const double &azimuthal_fraction, const double &phi)
Wrap mesh into annular shape.
Definition: annular_mesh.template.cc:37
const Scalar * a
Definition: level2_cplx_impl.h:32
double E
Elastic modulus.
Definition: TwenteMeshGluing.cpp:68
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10