30 #ifndef OOMPH_ONE_D_MESH_TEMPLATE_CC    31 #define OOMPH_ONE_D_MESH_TEMPLATE_CC    46  template <
class ELEMENT>
    59   Element_pt[0] = 
new ELEMENT;
    64    = 
dynamic_cast<ELEMENT*
>(finite_element_pt(0))->nnode_1d();
    67   Node_pt.resize(1+(n_node-1)*N);
    70   unsigned node_count = 0;
    73   const double xinit = Xmin;
    76   const double el_length = Length/double(N);
    79   Vector<double> s_fraction;
    91      = finite_element_pt(0)->construct_boundary_node(0,time_stepper_pt);
    94     node_pt(node_count)->x(0) = xinit;
    97     add_boundary_node(0,Node_pt[node_count]);
   106     for(
unsigned jnod=1;jnod<(n_node-1);jnod++)
   110        = finite_element_pt(0)->construct_node(jnod,time_stepper_pt);
   113       finite_element_pt(0)->local_fraction_of_node(jnod,s_fraction);
   116       node_pt(node_count)->x(0) = xinit + el_length*s_fraction[0];
   126     Node_pt[node_count] = finite_element_pt(0)
   127      ->construct_boundary_node(n_node-1,time_stepper_pt);
   130     node_pt(node_count)->x(0) = xinit + Length;
   133     add_boundary_node(1,Node_pt[node_count]);
   152      = finite_element_pt(0)->construct_boundary_node(0,time_stepper_pt);
   155     node_pt(node_count)->x(0) = xinit;
   158     add_boundary_node(0,Node_pt[node_count]);
   167     for(
unsigned jnod=1;jnod<n_node;jnod++)
   171        = finite_element_pt(0)->construct_node(jnod,time_stepper_pt);
   174       finite_element_pt(0)->local_fraction_of_node(jnod,s_fraction);
   177       node_pt(node_count)->x(0) = xinit + el_length*s_fraction[0];
   188     for(
unsigned e=1;e<(N-1);e++)
   191       Element_pt[e] = 
new ELEMENT;
   195       finite_element_pt(e)->node_pt(0)
   196        = finite_element_pt(e-1)->node_pt((n_node-1));
   199       for(
unsigned jnod=1;jnod<n_node;jnod++)
   203          = finite_element_pt(e)->construct_node(jnod,time_stepper_pt);
   206         finite_element_pt(e)->local_fraction_of_node(jnod,s_fraction);
   209         node_pt(node_count)->x(0) = xinit + el_length*(e + s_fraction[0]);
   221     Element_pt[N-1] = 
new ELEMENT;
   225     finite_element_pt(N-1)->node_pt(0)
   226      = finite_element_pt(N-2)->node_pt(n_node-1);
   230     for(
unsigned jnod=1;jnod<(n_node-1);jnod++)
   234        = finite_element_pt(N-1)->construct_node(jnod,time_stepper_pt);
   237       finite_element_pt(N-1)->local_fraction_of_node(jnod,s_fraction);
   240       node_pt(node_count)->x(0) = xinit + el_length*(N-1 + s_fraction[0]);
   250     Node_pt[node_count] = finite_element_pt(N-1)
   251      ->construct_boundary_node(n_node-1,time_stepper_pt);
   254     node_pt(node_count)->x(0) = xinit + Length;
   257     add_boundary_node(1,Node_pt[node_count]);
 
void build_mesh(TimeStepper *time_stepper_pt=&Mesh::Default_TimeStepper)
Generic mesh constuction routine, called by all constructors.