35 #ifndef OOMPH_FACE_ELEMENT_AS_GEOMETRIC_OBJECT_HEADER 36 #define OOMPH_FACE_ELEMENT_AS_GEOMETRIC_OBJECT_HEADER 40 #include <oomph-lib-config.h> 63 template<
class ELEMENT>
115 const unsigned &
i)
const 128 std::ostringstream error_message;
130 <<
"FaceElementAsGeomObject::geom_data_pt() is deliberately broken\n" 131 <<
"as it does not depend on any geometric Data" << std::endl;
133 OOMPH_CURRENT_FUNCTION,
134 OOMPH_EXCEPTION_LOCATION);
143 std::ostringstream warn_message;
145 <<
"Warning: You have just called the empty function \n" 147 "fill_in_contribution_to_jacobian() for a FaceElementAsGeometricObject.\n" 149 "These Elements should only be used to setup interactions, so should\n" 151 "not be included in any jacobian calculations\n";
155 "FaceElementAsGeometricObject::fill_in_contribution_to_jacobian()",
156 OOMPH_EXCEPTION_LOCATION);
190 template<
class ELEMENT>
206 if (cast_element1_pt==0)
208 std::ostringstream error_message;
210 <<
"Failed to cast element1_pt to a FaceElementAsGeomObject" 213 OOMPH_CURRENT_FUNCTION,
214 OOMPH_EXCEPTION_LOCATION);
217 if (cast_element2_pt==0)
219 std::ostringstream error_message;
221 <<
"Failed to cast element2_pt to a FaceElementAsGeomObject" 224 OOMPH_CURRENT_FUNCTION,
225 OOMPH_EXCEPTION_LOCATION);
A Generalised Element class.
unsigned ngeom_data() const
How many items of Data does the shape of the object depend on? None! We're dealing with a pure geomet...
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
virtual void assign_all_generic_local_eqn_numbers(const bool &store_local_dof_pt)
Overloaded version of the calculation of the local equation numbers. If the boolean argument is true ...
int & face_index()
Index of the face (a number that uniquely identifies the face in the element)
A general Finite Element class.
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
In a FaceElement, the "global" intrinsic coordinate of the element along the boundary, when viewed as part of a compound geometric object is specified using the boundary coordinate defined by the mesh. Note: Boundary coordinates will have been set up when creating the underlying mesh, and their values will have been stored at the nodes.
FaceElementAsGeomObject(const FaceElementAsGeomObject &)
Broken copy constructor.
unsigned nodal_dimension() const
Return the required Eulerian dimension of the nodes in this element.
Data * geom_data_pt(const unsigned &j)
Return pointer to the j-th Data item that the object's shape depends on. Object doesn't depend on any...
A class that represents a collection of data; each Data object may contain many different individual ...
void assign_all_generic_local_eqn_numbers(const bool &store_local_dof_pt)
Unique final overrider needed for assign_all_generic_local_eqn_numbers.
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Override fill in contribution to jacobian, nothing should be done.
unsigned dim() const
Return the spatial dimension of the element, i.e. the number of local coordinates required to paramet...
FaceElementAsGeomObject(FiniteElement *const &element_pt, const int &face_index)
Constructor which takes a pointer to a "bulk" element, to which this element is attached. The face index, indicates the face (of the bulk element) that is to be constructed. Note that this element tends to be constructed by the doubly templated Mesh::build_face_mesh() and therefore has to have the same interface as the the generic FaceElement constructor. Hence the boundary number (within the mesh) on which this element is located must be setup afterwards!
void set_nlagrangian_and_ndim(const unsigned &n_lagrangian, const unsigned &n_dim)
Set # of Lagrangian and Eulerian coordinates.
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Function for building a lower dimensional FaceElement on the specified face of the FiniteElement...
A class to do comparison of the elements by lexicographic ordering, based on the boundary coordinates...
void describe_local_dofs(std::ostream &out, const std::string &curr_string) const
Function to describe the local dofs of the element. The ostream specifies the output stream to which ...
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Broken assignment operator.
void describe_local_dofs(std::ostream &out, const std::string ¤t_string) const
Function to describe the local dofs of the element. The ostream specifies the output stream to which ...