27 #ifndef OOMPH_REFINEABLE_YOUNGLAPLACE_ELEMENTS_HEADER
28 #define OOMPH_REFINEABLE_YOUNGLAPLACE_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
37 #include "../generic/refineable_quad_element.h"
38 #include "../generic/error_estimator.h"
103 unsigned n_node =
nnode();
115 for (
unsigned l = 0; l < n_node; l++)
117 values[0] += this->
u(l) * psi[l];
132 throw OomphLibError(
"These equations are steady => No time dependence",
133 OOMPH_CURRENT_FUNCTION,
134 OOMPH_EXCEPTION_LOCATION);
171 template<
unsigned NNODE_1D>
220 return (NNODE_1D - 1);
238 template<
unsigned NNODE_1D>
240 :
public virtual QElement<1, NNODE_1D>
Base class for finite elements that can compute the quantities that are required for the Z2 error est...
FaceGeometry()
Constructor: Call the constructor for the appropriate lower-dimensional QElement.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...
virtual void shape(const Vector< double > &s, Shape &psi) const =0
Calculate the geometric shape functions at local coordinate s. This function must be overloaded for e...
unsigned nnode() const
Return the number of nodes.
Nodes are derived from Data, but, in addition, have a definite (Eulerian) position in a space of a gi...
An OomphLibError object which should be thrown when an run-time error is encountered....
unsigned nvertex_node() const
Number of vertex nodes in the element.
Node * vertex_node_pt(const unsigned &j) const
Pointer to the j-th vertex node in the element.
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
//////////////////////////////////////////////////////////////////////// ////////////////////////////...
RefineableElements are FiniteElements that may be subdivided into children to provide a better local ...
virtual RefineableElement * father_element_pt() const
Return a pointer to the father element.
A class that is used to template the refineable Q elements by dimension. It's really nothing more tha...
Refineable version of 2D QYoungLaplaceElement elements.
unsigned nrecovery_order()
Order of recovery shape functions for Z2 error estimation: Same order as shape functions.
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: empty.
unsigned ncont_interpolated_values() const
Number of continuously interpolated values: 1.
void further_setup_hanging_nodes()
Perform additional hanging node procedures for variables that are not interpolated by all nodes....
unsigned nvertex_node() const
Number of vertex nodes in the element.
RefineableQYoungLaplaceElement()
Constructor: Pass refinement level to refineable quad element (default 0 = root)
void operator=(const RefineableQYoungLaplaceElement< NNODE_1D > &)=delete
Broken assignment operator.
Node * vertex_node_pt(const unsigned &j) const
Pointer to the j-th vertex node in the element.
RefineableQYoungLaplaceElement(const RefineableQYoungLaplaceElement< NNODE_1D > &dummy)=delete
Broken copy constructor.
////////////////////////////////////////////////////////////////////////
void get_interpolated_values(const unsigned &t, const Vector< double > &s, Vector< double > &values)
Get the function value u in Vector. Note: Given the generality of the interface (this function is usu...
RefineableYoungLaplaceEquations(const RefineableYoungLaplaceEquations &dummy)=delete
Broken copy constructor.
RefineableYoungLaplaceEquations(const int &refine_level=0)
Constructor: Pass refinement level to refineable element (default 0 = root)
void operator=(const RefineableYoungLaplaceEquations &)=delete
Broken assignment operator.
void further_build()
Further build: Copy function pointers to spine and spine base functions from father....
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Get the function value u in Vector. Note: Given the generality of the interface (this function is usu...
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Get 'flux' for Z2 error recovery: Standard flux from YoungLaplace equations.
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute element residual vector taking hanging nodes into account.
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
A Class for shape functions. In simple cases, the shape functions have only one index that can be tho...
A class for all isoparametric elements that solve the YoungLaplace equations.
SpineBaseFctPt & spine_base_fct_pt()
Access function to function pointer that specifies spine base vector field.
void set_kappa(Data *kappa_pt)
Set curvature data (and add it to the element's external Data)
SpineFctPt & spine_fct_pt()
Access function to function pointer that specifies spine vector field.
virtual double u(const unsigned &n) const
Access function: Nodal function value at local node n Uses suitably interpolated value for hanging no...
SpineFctPt Spine_fct_pt
Pointer to spine function:
void get_flux(const Vector< double > &s, Vector< double > &flux) const
Get flux: flux[i] = du/dx_i: Mainly used for error estimation.
SpineBaseFctPt Spine_base_fct_pt
Pointer to spine base function:
Data * kappa_pt()
Access function: Pointer Data object that stores kappa (const version – kappa must be set with set_ka...
//////////////////////////////////////////////////////////////////// ////////////////////////////////...