29 #ifndef OOMPH_HP_REFINEABLE_ELEMENTS_HEADER
30 #define OOMPH_HP_REFINEABLE_ELEMENTS_HEADER
34 #include <oomph-lib-config.h>
49 template<
unsigned INITIAL_NNODE_1D>
52 public virtual QElement<1, INITIAL_NNODE_1D>,
65 void initial_setup(
Tree*
const& adopted_father_pt = 0,
66 const unsigned& initial_p_order = 0);
73 void p_refine(
const int& inc,
97 return this->p_order();
103 return INITIAL_NNODE_1D;
115 void local_coordinate_of_node(
const unsigned& n,
Vector<double>&
s)
const;
118 void local_fraction_of_node(
const unsigned& n,
Vector<double>& s_fraction);
121 double local_one_d_fraction_of_node(
const unsigned& n1d,
const unsigned&
i);
125 void rebuild_from_sons(
Mesh*& mesh_pt);
129 void check_integrity(
double& max_error);
133 void binary_hang_helper(
const int& value_id,
135 std::ofstream& output_hangfile);
141 template<
unsigned INITIAL_NNODE_1D>
144 public virtual QElement<2, INITIAL_NNODE_1D>,
157 void initial_setup(
Tree*
const& adopted_father_pt = 0,
158 const unsigned& initial_p_order = 0);
165 void p_refine(
const int& inc,
166 Mesh*
const& mesh_pt,
189 return this->p_order();
195 return INITIAL_NNODE_1D;
210 void local_coordinate_of_node(
const unsigned& n,
Vector<double>&
s)
const;
213 void local_fraction_of_node(
const unsigned& n,
Vector<double>& s_fraction);
216 double local_one_d_fraction_of_node(
const unsigned& n1d,
const unsigned&
i);
220 void rebuild_from_sons(
Mesh*& mesh_pt);
227 void check_integrity(
double& max_error);
234 void quad_hang_helper(
const int& value_id,
236 std::ofstream& output_hangfile);
242 template<
unsigned INITIAL_NNODE_1D>
245 public virtual QElement<3, INITIAL_NNODE_1D>,
258 void initial_setup(
Tree*
const& adopted_father_pt = 0,
259 const unsigned& initial_p_order = 0);
266 void p_refine(
const int& inc,
267 Mesh*
const& mesh_pt,
290 return this->p_order();
296 return INITIAL_NNODE_1D;
311 void local_coordinate_of_node(
const unsigned& n,
Vector<double>&
s)
const;
314 void local_fraction_of_node(
const unsigned& n,
Vector<double>& s_fraction);
317 double local_one_d_fraction_of_node(
const unsigned& n1d,
const unsigned&
i);
321 void rebuild_from_sons(
Mesh*& mesh_pt);
328 void check_integrity(
double& max_error);
335 void oc_hang_helper(
const int& value_id,
337 std::ofstream& output_hangfile);
A Class for the derivatives of shape functions The class design is essentially the same as Shape,...
A Generalised Element class.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
/////////////////////////////////////////////////////////////////// /////////////////////////////////...
unsigned initial_p_order() const
Get the initial P_order.
virtual ~PRefineableQElement()
Destructor.
void further_setup_hanging_nodes()
Perform additional hanging node procedures for variables that are not interpolated by all nodes (e....
unsigned nnode_1d() const
Returns the number of nodes along each edge of the element. Overloaded to return the (variable) p-ord...
PRefineableQElement()
Constructor.
virtual ~PRefineableQElement()
Destructor.
void further_setup_hanging_nodes()
Perform additional hanging node procedures for variables that are not interpolated by all nodes (e....
PRefineableQElement()
Constructor.
unsigned nnode_1d() const
Returns the number of nodes along each edge of the element. Overloaded to return the (variable) p-ord...
unsigned initial_p_order() const
Get the initial P_order.
virtual ~PRefineableQElement()
Destructor.
void further_setup_hanging_nodes()
Perform additional hanging node procedures for variables that are not interpolated by all nodes (e....
unsigned initial_p_order() const
Get the initial P_order.
unsigned nnode_1d() const
Returns the number of nodes along each edge of the element. Overloaded to return the (variable) p-ord...
PRefineableQElement()
Constructor.
A class that is used to template the p-refineable Q elements by dimension. It's really nothing more t...
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
A class that is used to template the refineable Q elements by dimension. It's really nothing more tha...
A Class for shape functions. In simple cases, the shape functions have only one index that can be tho...
A generalised tree base class that abstracts the common functionality between the quad- and octrees u...
A slight extension to the standard template vector class so that we can include "graceful" array rang...
void shape(const double &s, double *Psi)
Definition for 1D Lagrange shape functions. The value of all the shape functions at the local coordin...
//////////////////////////////////////////////////////////////////// ////////////////////////////////...