30 #ifndef OOMPH_ANNULAR_MESH_TEMPLATE_CC 31 #define OOMPH_ANNULAR_MESH_TEMPLATE_CC 44 template<
class ELEMENT>
48 const double& azimuthal_fraction,
58 const unsigned n_node = this->nnode();
59 for(
unsigned n=0;n<n_node;n++)
62 Node* nod_pt = this->node_pt(n);
67 xi[0] = (1.0-1.0e-10)*(-azimuthal_fraction*nod_pt->
x(0))*
76 double w = nod_pt->
x(1);
82 double norm = sqrt(base[0]*base[0] + base[1]*base[1]);
87 nod_pt->
x(0) = base[0] + w*(h+a-norm)*N[0];
88 nod_pt->
x(1) = base[1] + w*(h+a-norm)*N[1];
96 xi_bound[0]=atan2(nod_pt->
x(1),nod_pt->
x(0));
103 xi_bound[0]=sqrt(pow(nod_pt->
x(0),2)+pow(nod_pt->
x(1),2));
110 xi_bound[0]=atan2(nod_pt->
x(1),nod_pt->
x(0));
117 xi_bound[0]=sqrt(pow(nod_pt->
x(0),2)+pow(nod_pt->
x(1),2));
122 this->Boundary_coordinate_exists[0]=
true;
123 this->Boundary_coordinate_exists[1]=
true;
124 this->Boundary_coordinate_exists[2]=
true;
125 this->Boundary_coordinate_exists[3]=
true;
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...
void wrap_into_annular_shape(const double &a, const double &h, const double &azimuthal_fraction, const double &phi)
Wrap mesh into annular shape.
const double Pi
50 digits from maple
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
Steady ellipse with half axes A and B as geometric object: .
void position(const Vector< double > &zeta, Vector< double > &r) const
Position Vector at Lagrangian coordinate zeta.
double & x(const unsigned &i)
Return the i-th nodal coordinate.
virtual bool is_on_boundary() const
Test whether the Node lies on a boundary. The "bulk" Node cannot lie on a boundary, so return false. This will be overloaded by BoundaryNodes.