27 #ifndef OOMPH_REFINEABLE_LINE_ELEMENT_HEADER
28 #define OOMPH_REFINEABLE_LINE_ELEMENT_HEADER
32 #include <oomph-lib-config.h>
76 LeakCheckNames::RefineableQElement<1>
_build += 1;
95 LeakCheckNames::RefineableQElement<1>
_build -= 1;
131 virtual void build(
Mesh*& mesh_pt,
133 bool& was_already_built,
134 std::ofstream& new_nodes_file);
138 void check_integrity(
double& max_error);
165 void setup_father_bounds();
173 std::ofstream& output_hangfile)
194 "The class RefinableSolidQElement<1> has not been implemented or\n";
196 "tested. It is safest to assume that all functions do not do what\n";
198 "they claim to. The `build()' function is deliberately broken.";
202 "RefineableSolidQElement<1>::RefineableSolidQElement()",
203 OOMPH_EXCEPTION_LOCATION);
227 undeformed_macro_elem_pt);
242 bool& was_already_built,
243 std::ofstream& new_nodes_file)
245 throw OomphLibError(
"This function has not been implemented yet:",
246 OOMPH_CURRENT_FUNCTION,
247 OOMPH_EXCEPTION_LOCATION);
BinaryTree class: Recursively defined, generalised binary tree.
virtual void get_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Calculate the elemental Jacobian matrix "d equation / d variable".
Base class for all line elements.
Base class for MacroElement s that are used during mesh refinement in domains with curvlinear and/or ...
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....
An OomphLibWarning object which should be created as a temporary object to issue a warning....
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
virtual void set_macro_elem_pt(MacroElement *macro_elem_pt)
Broken assignment operator.
RefineableElements are FiniteElements that may be subdivided into children to provide a better local ...
Refineable version of QElement<1,NNODE_1D>.
Node * node_created_by_son_of_neighbour(const Vector< double > &s_fraction, bool &is_periodic)
If a neighbouring element has already created a node at a position corresponding to the local fractio...
unsigned required_nsons() const
A refineable line element has two sons.
RefineableQElement(const RefineableQElement< 1 > &dummy)=delete
Broken copy constructor.
BinaryTree * binary_tree_pt() const
Pointer to binary tree representation of this element (const version)
static std::map< unsigned, DenseMatrix< int > > Father_bound
Coincidence between son nodal points and father boundaries: Father_bound[node_1d](jnod_son,...
void setup_hanging_nodes(Vector< std::ofstream * > &output_stream)
Line elements have no hanging nodes so this is deliberately left empty.
void binary_hang_helper(const int &value_id, const int &my_edge, std::ofstream &output_hangfile)
Line elements have no hanging nodes so this is deliberately left empty.
RefineableQElement()
Constructor: Pass refinement level (default 0 = root)
BinaryTree * binary_tree_pt()
Pointer to binary tree representation of this element.
void setup_hang_for_value(const int &value_id)
Line elements have no hanging nodes so this is deliberately left empty.
virtual ~RefineableQElement()
Broken assignment operator.
A class that is used to template the refineable Q elements by dimension. It's really nothing more tha...
/////////////////////////////////////////////////////////////////// /////////////////////////////////...
Refineable version of Solid line elements.
RefineableSolidQElement()
Constructor, just call the constructor of the RefineableQElement<1>
void build(Mesh *&mesh_pt, Vector< Node * > &new_node_pt, bool &was_already_built, std::ofstream &new_nodes_file)
Build the element, i.e. give it nodal positions, apply BCs, etc. Incl. documention into new_nodes_fil...
RefineableSolidQElement(const RefineableSolidQElement< 1 > &dummy)=delete
Broken copy constructor.
void get_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Use the generic finite difference routine defined in RefineableSolidElement to calculate the Jacobian...
void set_macro_elem_pt(MacroElement *macro_elem_pt, MacroElement *undeformed_macro_elem_pt)
Final over-ride: Use version in QSolidElementBase.
virtual ~RefineableSolidQElement()
Broken assignment operator.
void set_macro_elem_pt(MacroElement *macro_elem_pt)
Final over-ride: Use version in QSolidElementBase.
A class that is used to template the solid refineable Q elements by dimension. It's really nothing mo...
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
long RefineableQElement< 2 > _build
Vector< std::string > colour
Tecplot colours.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...