29 #ifndef OOMPH_GENERIC_ELEMENTS_HEADER
30 #define OOMPH_GENERIC_ELEMENTS_HEADER
34 #include <oomph-lib-config.h>
128 int Non_halo_proc_ID;
131 bool Must_be_kept_as_halo;
148 #ifdef RANGE_CHECKING
151 std::ostringstream error_message;
152 error_message <<
"Range Error: Internal data " <<
i
169 #ifdef RANGE_CHECKING
172 std::ostringstream error_message;
173 error_message <<
"Range Error: Internal data " <<
i
189 #ifdef RANGE_CHECKING
192 std::ostringstream error_message;
193 error_message <<
"Range Error: Internal data " <<
i
221 std::deque<unsigned long>
const& global_eqn_numbers,
222 std::deque<double*>
const& global_dof_pt);
242 const bool& store_local_dof_pt);
254 const bool& store_local_dof_pt)
269 #ifdef RANGE_CHECKING
272 std::ostringstream error_message;
273 error_message <<
"Range Error: Internal data " <<
i
285 std::ostringstream error_message;
286 error_message <<
"Range Error: value " <<
j <<
" at internal data "
287 <<
i <<
" is not in the range (0," << n_value - 1
300 "Internal local equation numbers have not been allocated",
314 #ifdef RANGE_CHECKING
317 std::ostringstream error_message;
318 error_message <<
"Range Error: External data " <<
i
330 std::ostringstream error_message;
331 error_message <<
"Range Error: value " <<
j <<
" at internal data "
332 <<
i <<
" is not in the range (0," << n_value - 1
344 "External local equation numbers have not been allocated",
360 "Empty fill_in_contribution_to_residuals() has been called.\n";
362 "This function is called from the default implementations of\n";
363 error_message +=
"get_residuals() and get_jacobian();\n";
365 "and must calculate the residuals vector without initialising any of ";
366 error_message +=
"its entries.\n\n";
369 "If you do not wish to use these defaults, you must overload both\n";
370 error_message +=
"get_residuals() and get_jacobian(), which must "
371 "initialise the entries\n";
372 error_message +=
"of the residuals vector and jacobian matrix to zero.\n";
374 error_message +=
"N.B. the default get_jacobian() function employs "
375 "finite differencing\n";
391 const bool& fd_all_data =
false);
402 const bool& fd_all_data =
false)
424 const bool& fd_all_data =
false);
436 const bool& fd_all_data =
false)
553 double*
const& parameter_pt,
565 double*
const& parameter_pt,
584 Vector<std::pair<unsigned, unsigned>>
const& history_index,
606 Non_halo_proc_ID(-1),
607 Must_be_kept_as_halo(false)
624 #ifdef RANGE_CHECKING
627 std::ostringstream error_message;
628 error_message <<
"Range Error: Internal data " <<
i
642 #ifdef RANGE_CHECKING
645 std::ostringstream error_message;
646 error_message <<
"Range Error: Internal data " <<
i
661 #ifdef RANGE_CHECKING
664 std::ostringstream error_message;
665 error_message <<
"Range Error: External data " <<
i
679 #ifdef RANGE_CHECKING
682 std::ostringstream error_message;
683 error_message <<
"Range Error: External data " <<
i
706 #ifdef RANGE_CHECKING
707 if (ieqn_local >=
Ndof)
709 std::ostringstream error_message;
710 error_message <<
"Range Error: Equation number " << ieqn_local
711 <<
" is not in the range (0," <<
Ndof - 1 <<
")";
729 const unsigned n_dof = this->
Ndof;
731 for (
unsigned n = 0;
n < n_dof;
n++)
759 #ifdef RANGE_CHECKING
762 std::ostringstream error_message;
763 error_message <<
"Range Error: Internal data " <<
i
780 #ifdef RANGE_CHECKING
783 std::ostringstream error_message;
784 error_message <<
"Range Error: External data " <<
i
800 #ifdef RANGE_CHECKING
803 std::ostringstream error_message;
804 error_message <<
"Range Error: External data " <<
i
847 std::stringstream error_stream;
848 error_stream <<
"Internal dof array not set up in element.\n"
849 <<
"In order to set it up you must call\n"
850 <<
" Problem::enable_store_local_dof_in_elements()\n"
851 <<
"before the call to Problem::assign_eqn_numbers()\n";
857 dof.resize(this->Ndof);
859 for (
unsigned i = 0;
i < this->
Ndof; ++
i)
872 std::stringstream error_stream;
873 error_stream <<
"Internal dof array not set up in element.\n"
874 <<
"In order to set it up you must call\n"
875 <<
" Problem::enable_store_local_dof_in_elements()\n"
876 <<
"before the call to Problem::assign_eqn_numbers()\n";
882 dof_pt.resize(this->Ndof);
884 for (
unsigned i = 0;
i < this->
Ndof; ++
i)
895 const bool& preserve_existing_data)
898 preserve_existing_data);
934 std::map<unsigned, double*>& map_of_value_pt);
939 void add_internal_data_values_to_vector(
Vector<double>& vector_of_values);
944 void read_internal_data_values_from_vector(
949 void add_internal_eqn_numbers_to_vector(
956 void read_internal_eqn_numbers_from_vector(
957 const Vector<long>& vector_of_eqn_numbers,
unsigned& index);
1028 residuals, jacobian, mass_matrix);
1056 parameter_pt, dres_dparam, djac_dparam);
1062 double*
const& parameter_pt,
1075 parameter_pt, dres_dparam, djac_dparam, dmass_matrix_dparam);
1096 Vector<std::pair<unsigned, unsigned>>
const& history_index,
1110 const unsigned n_inner_product = inner_product_vector.size();
1111 for (
unsigned i = 0;
i < n_inner_product; ++
i)
1113 inner_product_vector[
i].initialise(0.0);
1116 inner_product_vector);
1131 "compute_norm(...) undefined for this element\n";
1142 std::string error_message =
"compute_norm undefined for this element \n";
1147 #ifdef OOMPH_HAS_MPI
1151 void set_halo(
const unsigned& non_halo_proc_ID)
1153 Non_halo_proc_ID = non_halo_proc_ID;
1159 Non_halo_proc_ID = -1;
1163 bool is_halo()
const
1165 return (Non_halo_proc_ID != -1);
1170 int non_halo_proc_ID()
1172 return Non_halo_proc_ID;
1176 void set_must_be_kept_as_halo()
1178 Must_be_kept_as_halo =
true;
1183 void unset_must_be_kept_as_halo()
1185 Must_be_kept_as_halo =
false;
1189 bool must_be_kept_as_halo()
const
1191 return Must_be_kept_as_halo;
1205 std::ostringstream error_message;
1206 error_message <<
"ndof_types() const has not been implemented for this \n"
1222 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const
1225 std::ostringstream error_message;
1226 error_message <<
"get_dof_numbers_for_unknowns() const has not been \n"
1227 <<
" implemented for this element\n"
1258 namespace Locate_zeta_helpers
1293 unsigned& interior_direction);
1424 for (
unsigned i = 0;
i <
n;
i++)
1434 #ifdef RANGE_CHECKING
1437 std::ostringstream error_message;
1438 error_message <<
"Range Error: Node number " <<
n
1439 <<
" is not in the range (0," <<
Nnode - 1 <<
")";
1449 std::ostringstream error_message;
1450 error_message <<
"Range Error: value " <<
i <<
" at node " <<
n
1451 <<
" is not in the range (0," << n_value - 1 <<
")";
1463 "Nodal local equation numbers have not been allocated",
1489 template<
unsigned DIM>
1564 template<
unsigned DIM>
1586 const double& det_jacobian,
1603 template<
unsigned DIM>
1605 const double& det_jacobian,
1658 template<
unsigned DIM>
1674 template<
unsigned DIM>
1698 unsigned n_dof =
ndof();
1741 unsigned n_dof =
ndof();
1816 "local_coord_is_valid is not implemented for this element\n",
1826 throw OomphLibError(
"move_local_coords_back_into_element() is not "
1827 "implemented for this element\n",
1846 "local_coordinate_of_node(...) is not implemented for this element\n",
1862 "local one_d_fraction_of_node is not implemented for this element\n";
1864 "It only makes sense for elements that use tensor-product expansions\n";
1938 "get_x_from_macro_element(...) is not implemented for this element\n",
1953 "get_x_from_macro_element(...) is not implemented for this element\n",
1986 "dshape_local() is not implemented for this element\n",
2022 "d2shape_local() is not implemented for this element\n",
2085 const unsigned& ipt,
2165 const bool& store_local_dof_pt)
2169 store_local_dof_pt);
2177 #ifdef RANGE_CHECKING
2180 std::ostringstream error_message;
2181 error_message <<
"Range Error: " <<
n <<
" is not in the range (0,"
2182 <<
Nnode - 1 <<
")";
2194 #ifdef RANGE_CHECKING
2197 std::ostringstream error_message;
2198 error_message <<
"Range Error: " <<
n <<
" is not in the range (0,"
2199 <<
Nnode - 1 <<
")";
2249 const unsigned&
i)
const
2265 const unsigned&
i)
const
2274 const unsigned&
i)
const
2285 const unsigned&
i)
const
2296 const unsigned&
i)
const
2308 const unsigned&
i)
const
2327 const unsigned&
i)
const
2342 const unsigned&
i)
const
2351 const unsigned&
i)
const
2361 const unsigned&
i)
const
2371 const unsigned&
i)
const
2382 const unsigned&
i)
const
2410 std::ostringstream warn_message;
2412 <<
"Warning: You have just called the default (empty) function \n\n"
2413 <<
" FiniteElement::disable_ALE() \n\n"
2414 <<
"This suggests that you've either tried to call it for an element\n"
2416 <<
"(1) does not involve time-derivatives (e.g. a Poisson element) \n"
2417 <<
"(2) an element for which the time-derivatives aren't implemented \n"
2418 <<
" in ALE form \n"
2419 <<
"(3) an element for which the ALE form of the equations can't be \n"
2420 <<
" be disabled (yet).\n";
2432 std::ostringstream warn_message;
2434 <<
"Warning: You have just called the default (empty) function \n\n"
2435 <<
" FiniteElement::enable_ALE() \n\n"
2436 <<
"This suggests that you've either tried to call it for an element\n"
2438 <<
"(1) does not involve time-derivatives (e.g. a Poisson element) \n"
2439 <<
"(2) an element for which the time-derivatives aren't implemented \n"
2440 <<
" in ALE form \n"
2441 <<
"(3) an element for which the ALE form of the equations can't be \n"
2442 <<
" be disabled (yet)\n"
2443 <<
"(4) an element for which this function has not been (properly) \n "
2444 <<
" implemented. This is likely to be a bug!\n ";
2472 unsigned nnod =
nnode();
2473 for (
unsigned j = 0;
j < nnod;
j++)
2493 std::string error_msg =
"Not implemented for FiniteElement.";
2502 std::string error_msg =
"Not implemented for FiniteElement.";
2586 const unsigned&
i)
const
2603 const unsigned&
i)
const
2626 const unsigned&
i)
const;
2632 const unsigned&
i)
const;
2724 const unsigned&
i)
const
2756 const bool& use_coordinate_as_initial_guess =
false);
2780 std::set<std::pair<Data*, unsigned>>& paired_field_data);
2795 throw OomphLibError(
"s_min() isn't implemented for this element\n",
2805 throw OomphLibError(
"s_max() isn't implemented for this element\n",
2818 double size()
const;
2828 "compute_physical_size() isn't implemented for this element\n",
2852 unsigned n =
data.size();
2853 for (
unsigned i = 0;
i <
n;
i++)
2855 outfile <<
data[
i] <<
" ";
2865 "This function hasn't been implemented for this element",
2879 "This function hasn't been implemented for this element",
2892 unsigned nnod =
nnode();
2893 if (nnod == 0)
return;
2906 for (
unsigned j = 0;
j <
plot;
j++)
2916 for (
unsigned i = 0;
i <
n - 1;
i++)
2918 file_out <<
x[
i] <<
" ";
2920 file_out <<
x[
n - 1];
2928 <<
" 0" << std::endl;
2932 file_out <<
" 0" << std::endl;
2936 file_out << std::endl;
2942 "Printing PlotPoint to .vtu failed; it has >3 dimensions.",
2953 std::ofstream& file_out,
const unsigned& nplot,
unsigned& counter)
const
2956 "This function hasn't been implemented for this element",
2965 const unsigned& nplot)
const
2968 "This function hasn't been implemented for this element",
2977 const unsigned& nplot,
2978 unsigned& offset_sum)
const
2981 "This function hasn't been implemented for this element",
2991 "This function hasn't been implemented for this element",
3003 const unsigned& nplot)
const
3006 "This function hasn't been implemented for this element",
3014 std::ofstream& file_out,
3016 const unsigned& nplot,
3020 "This function hasn't been implemented for this element",
3028 std::ofstream& file_out,
3030 const unsigned& nplot,
3035 "This function hasn't been implemented for this element",
3053 "Output function function hasn't been implemented for this element",
3060 virtual void output(std::ostream& outfile,
const unsigned& n_plot)
3063 "Output function function hasn't been implemented for this element",
3072 std::ostream& outfile,
3073 const unsigned& n_plot)
const
3076 "Output function function hasn't been implemented for this element",
3086 throw OomphLibError(
"C-style otput function function hasn't been "
3087 "implemented for this element",
3095 virtual void output(FILE* file_pt,
const unsigned& n_plot)
3097 throw OomphLibError(
"C-style output function function hasn't been "
3098 "implemented for this element",
3105 std::ostream& outfile,
3106 const unsigned& n_plot,
3110 "Output function function hasn't been implemented for exact solution",
3118 std::ostream& outfile,
3119 const unsigned& n_plot,
3124 "Output function function hasn't been implemented for exact solution",
3131 const unsigned& n_plot,
3136 "Output function function hasn't been implemented for exact solution",
3149 const unsigned& nplot,
3151 const bool& shifted_to_interior =
false)
const
3154 "get_s_plot(...) is not implemented for this element\n",
3164 "tecplot_zone_string(...) is not implemented for this element\n",
3167 return "dummy return";
3175 const unsigned& nplot)
const {};
3182 const unsigned& nplot)
const {};
3189 "nplot_points(...) is not implemented for this element",
3203 std::string error_message =
"compute_error undefined for this element \n";
3215 std::string error_message =
"time-dependent compute_error ";
3216 error_message +=
"undefined for this element \n";
3230 std::string error_message =
"compute_error undefined for this element \n";
3245 std::string error_message =
"time-dependent compute_error ";
3246 error_message +=
"undefined for this element \n";
3257 std::ostream& outfile,
3262 std::string error_message =
"compute_error undefined for this element \n";
3263 outfile << error_message;
3273 std::ostream& outfile,
3280 "time-dependent compute_error undefined for this element \n";
3281 outfile << error_message;
3293 std::ostream& outfile,
3298 std::string error_message =
"compute_error undefined for this element \n";
3299 outfile << error_message;
3302 "FiniteElement::compute_error()",
3312 std::ostream& outfile,
3319 "time-dependent compute_error undefined for this element \n";
3320 outfile << error_message;
3323 "FiniteElement::compute_error()",
3331 std::ostream& outfile,
3336 "compute_abs_error undefined for this element \n";
3337 outfile << error_message;
3372 const unsigned&
i)
const
3374 std::string err =
"Not implemented for this element.";
3382 std::string err =
"Not implemented for this element.";
3389 std::string err =
"Not implemented for this element.";
3397 #ifdef RANGE_CHECKING
3400 std::string err =
"Face node index i out of range on face.";
3410 const int& face_index)
const
3412 std::string err =
"Not implemented for this element.";
3420 const int& face_index)
const
3422 std::string err =
"Not implemented for this element.";
3627 const unsigned n_node = this->
nnode();
3628 for (
unsigned n = 0;
n < n_node;
n++)
3630 geometric_data_pt.insert(
3644 const unsigned&
i)
const
3666 "get_x_and_xi(...) is not implemented for this element\n",
3868 const bool& store_local_dof_pt)
3899 const unsigned&
i)
const
3914 const unsigned&
i)
const
3922 const unsigned&
i)
const;
4066 const unsigned& flag);
4139 const unsigned&
j)
const
4141 #ifdef RANGE_CHECKING
4142 std::ostringstream error_message;
4147 error_message <<
"Range Error: Nodal number " <<
n
4148 <<
" is not in the range (0," <<
nnode() <<
")";
4154 error_message <<
"Range Error: Position type " <<
k
4162 error_message <<
"Range Error: Nodal coordinate " <<
j
4199 unsigned n_dof =
ndof();
4229 unsigned n_dof =
ndof();
4352 unsigned& interior_direction);
4394 bool Boundary_number_in_bulk_mesh_has_been_set;
4432 const unsigned n_node =
nnode();
4435 for (
unsigned n = 0;
n < n_node;
n++)
4439 ->assign_additional_values_with_face_id(nadditional_values[
n],
id);
4457 Boundary_number_in_bulk_mesh_has_been_set =
false;
4486 Boundary_number_in_bulk_mesh_has_been_set =
true;
4499 const unsigned&
i)
const
4543 const unsigned&
i)
const
4651 std::ostringstream error_message;
4652 error_message <<
"The pointer tangent_direction_pt is null.\n";
4662 if (tang_dir_size != spatial_dimension)
4664 std::ostringstream error_message;
4665 error_message <<
"The tangent direction vector has size "
4666 << tang_dir_size <<
"\n"
4667 <<
"but this element has spatial dimension "
4668 << spatial_dimension <<
".\n";
4674 if (tang_dir_size == 2)
4676 std::ostringstream warning_message;
4678 <<
"The spatial dimension is " << spatial_dimension <<
".\n"
4679 <<
"I do not need a tangent direction vector to create \n"
4680 <<
"continuous tangent vectors in two spatial dimensions.";
4722 const unsigned& ipt,
4749 #pragma clang diagnostic push
4750 #pragma clang diagnostic ignored "-Woverloaded-virtual"
4783 #pragma clang diagnostic pop
4801 unsigned& interior_direction)
const;
4885 unsigned n_node =
nnode();
4887 for (
unsigned l = 0; l < n_node; l++)
4892 unsigned Nadditional = nadditional_data_values[l];
4894 if ((Initial_Nvalue ==
Nbulk_value[l]) && (Nadditional > 0))
4903 void output_zeta(std::ostream& outfile,
const unsigned& nplot);
4923 const unsigned&
i)
const
4996 template<
class ELEMENT>
5011 template<
class ELEMENT>
5036 const unsigned&
i)
const
5044 outfile <<
"ZONE" << std::endl;
5045 unsigned nnod =
nnode();
5046 for (
unsigned j = 0;
j < nnod;
j++)
5049 unsigned dim = nod_pt->
ndim();
5050 for (
unsigned i = 0;
i <
dim;
i++)
5052 outfile << nod_pt->
x(
i) <<
" ";
5054 outfile << std::endl;
5059 void output(std::ostream& outfile,
const unsigned& n_plot)
5071 void output(FILE* file_pt,
const unsigned& n_plot)
5117 template<
class ELEMENT>
5127 Boundary_number_in_bulk_mesh_has_been_set =
false;
5143 Boundary_number_in_bulk_mesh_has_been_set =
true;
5156 const unsigned&
i)
const
5162 this->node_pt(
n)->get_coordinates_on_boundary(
5177 bool Boundary_number_in_bulk_mesh_has_been_set;
5253 const unsigned& which_one = 0) = 0;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
int data[]
Definition: Map_placement_new.cpp:1
Scalar * b
Definition: benchVecAdd.cpp:17
Allows for timing the algorithms; accurate up to 0.01 sec.
Definition: MercuryTime.h:25
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Definition: nodes.h:483
void set_time_stepper(TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data)
Definition: nodes.cc:406
void initialise(const T &val)
Initialize all values in the matrix to val.
Definition: matrices.h:514
Definition: elements.h:5014
DummyFaceElement()
Constructor.
Definition: elements.h:5028
void output(std::ostream &outfile)
Output nodal coordinates.
Definition: elements.h:5042
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:5034
void output(FILE *file_pt, const unsigned &n_plot)
C_style output at n_plot points.
Definition: elements.h:5071
void output(std::ostream &outfile, const unsigned &n_plot)
Output at n_plot points.
Definition: elements.h:5059
DummyFaceElement(FiniteElement *const &element_pt, const int &face_index)
Definition: elements.h:5018
void output(FILE *file_pt)
C-style output.
Definition: elements.h:5065
Definition: elements.h:5088
virtual void get_drag_and_torque(Vector< double > &drag_force, Vector< double > &drag_torque)=0
virtual ~ElementWithDragFunction()
Empty virtual destructor.
Definition: elements.h:5094
ElementWithDragFunction()
Empty constructor.
Definition: elements.h:5091
Definition: elements.h:4338
void interpolated_x(const Vector< double > &s, Vector< double > &x) const
Definition: elements.h:4555
void turn_on_warning_for_discontinuous_tangent()
Definition: elements.h:4693
unsigned & bulk_position_type(const unsigned &i)
Definition: elements.h:4805
double interpolated_dxdt(const Vector< double > &s, const unsigned &i, const unsigned &t)
Definition: elements.h:4583
unsigned nbulk_value(const unsigned &n) const
Definition: elements.h:4853
unsigned Boundary_number_in_bulk_mesh
The boundary number in the bulk mesh to which this element is attached.
Definition: elements.h:4388
CoordinateMappingFctPt face_to_bulk_coordinate_fct_pt() const
Definition: elements.h:4762
Vector< unsigned > Bulk_node_number
Definition: elements.h:4403
CoordinateMappingFctPt & face_to_bulk_coordinate_fct_pt()
Definition: elements.h:4755
FiniteElement * Bulk_element_pt
Pointer to the associated higher-dimensional "bulk" element.
Definition: elements.h:4399
void bulk_node_number_resize(const unsigned &i)
Resize the storage for the bulk node numbers.
Definition: elements.h:4818
const Vector< double > * tangent_direction_pt() const
Public access function for the tangent direction pointer.
Definition: elements.h:4639
int face_index() const
Definition: elements.h:4633
BulkCoordinateDerivativesFctPt bulk_coordinate_derivatives_fct_pt() const
Definition: elements.h:4777
int & face_index()
Definition: elements.h:4626
void outer_unit_normal(const Vector< double > &s, Vector< double > &unit_normal) const
Compute outer unit normal at the specified local coordinate.
Definition: elements.cc:6006
void turn_off_warning_for_discontinuous_tangent()
Definition: elements.h:4700
int Face_index
Index of the face.
Definition: elements.h:4377
unsigned & nbulk_value(const unsigned &n)
Definition: elements.h:4845
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:4497
int Normal_sign
Definition: elements.h:4374
BulkCoordinateDerivativesFctPt Bulk_coordinate_derivatives_fct_pt
Definition: elements.h:4361
Vector< double > local_coordinate_in_bulk(const Vector< double > &s) const
Definition: elements.cc:6353
FaceElement()
Constructor: Initialise all appropriate member data.
Definition: elements.h:4446
void add_additional_values(const Vector< unsigned > &nadditional_values, const unsigned &id)
Definition: elements.h:4428
void(* BulkCoordinateDerivativesFctPt)(const Vector< double > &s, DenseMatrix< double > &ds_bulk_dsface, unsigned &interior_direction)
Definition: elements.h:4349
Vector< double > * Tangent_direction_pt
Definition: elements.h:4420
void interpolated_x(const unsigned &t, const Vector< double > &s, Vector< double > &x) const
Definition: elements.h:4568
FiniteElement *& bulk_element_pt()
Pointer to higher-dimensional "bulk" element.
Definition: elements.h:4735
const unsigned & boundary_number_in_bulk_mesh() const
Broken assignment operator.
Definition: elements.h:4475
int normal_sign() const
Definition: elements.h:4619
double interpolated_x(const Vector< double > &s, const unsigned &i) const
Definition: elements.h:4528
void bulk_position_type_resize(const unsigned &i)
Resize the storage for bulk_position_type to i entries.
Definition: elements.h:4838
FiniteElement * bulk_element_pt() const
Pointer to higher-dimensional "bulk" element (const version)
Definition: elements.h:4742
double J_eulerian(const Vector< double > &s) const
Definition: elements.cc:5242
Vector< unsigned > Bulk_position_type
Definition: elements.h:4370
static bool Ignore_discontinuous_tangent_warning
Definition: elements.h:4384
void set_tangent_direction(Vector< double > *tangent_direction_pt)
Set the tangent direction vector.
Definition: elements.h:4645
double J_eulerian_at_knot(const unsigned &ipt) const
Definition: elements.cc:5328
const unsigned & bulk_position_type(const unsigned &i) const
Definition: elements.h:4812
void(* CoordinateMappingFctPt)(const Vector< double > &s, Vector< double > &s_bulk)
Definition: elements.h:4341
void set_boundary_number_in_bulk_mesh(const unsigned &b)
Set function for the boundary number in bulk mesh.
Definition: elements.h:4482
void check_J_eulerian_at_knots(bool &passed) const
Definition: elements.cc:5410
BulkCoordinateDerivativesFctPt & bulk_coordinate_derivatives_fct_pt()
Definition: elements.h:4770
Vector< unsigned > Nbulk_value
Definition: elements.h:4413
void get_ds_bulk_ds_face(const Vector< double > &s, DenseMatrix< double > &dsbulk_dsface, unsigned &interior_direction) const
Definition: elements.cc:6409
double interpolated_x(const unsigned &t, const Vector< double > &s, const unsigned &i) const
Definition: elements.h:4541
void continuous_tangent_and_outer_unit_normal(const Vector< double > &s, Vector< Vector< double >> &tang_vec, Vector< double > &unit_normal) const
Definition: elements.cc:5512
void get_local_coordinate_in_bulk(const Vector< double > &s, Vector< double > &s_bulk) const
Definition: elements.cc:6384
const unsigned & bulk_node_number(const unsigned &n) const
Definition: elements.h:4832
CoordinateMappingFctPt Face_to_bulk_coordinate_fct_pt
Definition: elements.h:4357
int & normal_sign()
Definition: elements.h:4612
void output_zeta(std::ostream &outfile, const unsigned &nplot)
Output boundary coordinate zeta.
Definition: elements.cc:5200
unsigned & bulk_node_number(const unsigned &n)
Definition: elements.h:4825
void resize_nodes(Vector< unsigned > &nadditional_data_values)
Definition: elements.h:4882
void interpolated_dxdt(const Vector< double > &s, const unsigned &t, Vector< double > &dxdt)
Definition: elements.h:4598
FaceElement(const FaceElement &)=delete
Broken copy constructor.
virtual ~FaceElement()
Empty virtual destructor.
Definition: elements.h:4465
void nbulk_value_resize(const unsigned &i)
Definition: elements.h:4860
Definition: elements.h:4998
Definition: elements.h:1313
virtual void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: elements.h:3001
virtual void write_tecplot_zone_footer(FILE *file_pt, const unsigned &nplot) const
Definition: elements.h:3181
virtual void output(const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const
Definition: elements.h:3071
virtual void fill_in_jacobian_from_nodal_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.cc:3660
virtual unsigned nplot_points_paraview(const unsigned &nplot) const
Definition: elements.h:2862
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, const SolutionFunctorBase &exact_soln) const
Output a time-dependent exact solution over the element.
Definition: elements.h:3130
virtual int face_outer_unit_normal_sign(const int &face_index) const
Get the sign of the outer unit normal on the face given by face_index.
Definition: elements.h:3380
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:1735
virtual void update_before_nodal_fd()
Definition: elements.h:1709
void interpolated_zeta(const Vector< double > &s, Vector< double > &zeta) const
Definition: elements.cc:4675
virtual void d_dshape_eulerian_dnodal_coordinates(const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const
Definition: elements.cc:2749
virtual void identify_geometric_data(std::set< Data * > &geometric_data_pt)
Definition: elements.h:2789
void get_x(const unsigned &t, const Vector< double > &s, Vector< double > &x)
Definition: elements.h:1904
void set_nodal_dimension(const unsigned &nodal_dim)
Definition: elements.h:1390
double raw_dnodal_position_gen_dt(const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2305
void dposition_dt(const Vector< double > &zeta, const unsigned &t, Vector< double > &drdt)
Definition: elements.h:2701
virtual void set_macro_elem_pt(MacroElement *macro_elem_pt)
Definition: elements.h:1872
void position(const Vector< double > &zeta, Vector< double > &r) const
Definition: elements.h:2676
double dnodal_position_dt(const unsigned &n, const unsigned &j, const unsigned &i) const
Definition: elements.h:2340
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output an exact solution over the element.
Definition: elements.h:3104
virtual void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Definition: elements.h:1842
virtual Node * construct_node(const unsigned &n)
Definition: elements.h:2509
double raw_nodal_position(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: elements.h:2247
void d_dshape_eulerian_dnodal_coordinates_templated_helper(const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const
Integral * Integral_pt
Pointer to the spatial integration scheme.
Definition: elements.h:1316
void check_J_eulerian_at_knots(bool &passed) const
Definition: elements.cc:4237
virtual double invert_jacobian_mapping(const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.cc:2166
void set_nnodal_position_type(const unsigned &nposition_type)
Set the number of types required to interpolate the coordinate.
Definition: elements.h:1396
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
double nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2593
virtual void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Output a time-dependent exact solution over the element.
Definition: elements.h:3117
virtual void output(std::ostream &outfile)
Definition: elements.h:3050
virtual unsigned get_bulk_node_number(const int &face_index, const unsigned &i) const
Definition: elements.h:3371
double size() const
Definition: elements.cc:4290
virtual void assemble_local_to_eulerian_jacobian2(const DShape &d2psids, DenseMatrix< double > &jacobian2) const
Definition: elements.cc:1963
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Definition: elements.h:3161
virtual void describe_local_dofs(std::ostream &out, const std::string ¤t_string) const
Definition: elements.cc:1709
static const double Node_location_tolerance
Definition: elements.h:1374
virtual double s_min() const
Min value of local coordinate.
Definition: elements.h:2793
unsigned nnodal_position_type() const
Definition: elements.h:2463
virtual void compute_error(FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm)
Definition: elements.h:3239
virtual void node_update()
Definition: elements.cc:5072
double nodal_value(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: elements.h:2601
static double Tolerance_for_singular_jacobian
Tolerance below which the jacobian is considered singular.
Definition: elements.h:1770
static bool Accept_negative_jacobian
Definition: elements.h:1775
virtual void build_face_element(const int &face_index, FaceElement *face_element_pt)
Definition: elements.cc:5132
virtual void update_in_nodal_fd(const unsigned &i)
Definition: elements.h:1718
virtual unsigned nvertex_node() const
Definition: elements.h:2491
double dnodal_position_gen_dt(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2369
virtual std::string scalar_name_paraview(const unsigned &i) const
Definition: elements.h:3043
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
Definition: elements.cc:3962
virtual void dJ_eulerian_dnodal_coordinates(const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const
Definition: elements.cc:2669
virtual void d2shape_local(const Vector< double > &s, Shape &psi, DShape &dpsids, DShape &d2psids) const
Definition: elements.h:2016
virtual void dshape_local_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsids) const
Definition: elements.cc:3239
virtual void assign_all_generic_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.h:2164
virtual unsigned required_nvalue(const unsigned &n) const
Definition: elements.h:2455
void point_output(std::ostream &outfile, const Vector< double > &s)
Definition: elements.h:2845
virtual void shape(const Vector< double > &s, Shape &psi) const =0
void set_dimension(const unsigned &dim)
Definition: elements.h:1380
void check_jacobian(const double &jacobian) const
Definition: elements.cc:1750
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Definition: elements.h:1432
static const unsigned N2deriv[]
Definition: elements.h:1483
unsigned dim() const
Definition: elements.h:2611
MacroElement * Macro_elem_pt
Pointer to the element's macro element (NULL by default)
Definition: elements.h:1683
double nodal_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2349
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
virtual void disable_ALE()
Definition: elements.h:2408
virtual double s_max() const
Max. value of local coordinate.
Definition: elements.h:2803
void locate_zeta(const Vector< double > &zeta, GeomObject *&geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false)
Definition: elements.cc:4734
virtual ElementGeometry::ElementGeometry element_geometry() const
Return the geometry type of the element (either Q or T usually).
Definition: elements.h:2617
void face_node_number_error_check(const unsigned &i) const
Range check for face node numbers.
Definition: elements.h:3395
virtual void compute_error(FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Calculate the norm of the error and that of the exact solution.
Definition: elements.h:3198
unsigned Nodal_dimension
Definition: elements.h:1336
virtual void write_paraview_type(std::ofstream &file_out, const unsigned &nplot) const
Definition: elements.h:2964
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
void get_centre_of_gravity_and_max_radius_in_terms_of_zeta(Vector< double > &cog, double &max_radius) const
Definition: elements.cc:3924
virtual void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm)
Definition: elements.h:3311
double nodal_position_gen(const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2358
virtual void reset_in_nodal_fd(const unsigned &i)
Definition: elements.h:1723
void transform_second_derivatives_template(const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const
void dJ_eulerian_dnodal_coordinates_templated_helper(const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const
double dnodal_position_gen_dt(const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2379
void get_x(const Vector< double > &s, Vector< double > &x) const
Definition: elements.h:1885
virtual void assign_nodal_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.cc:3544
virtual void output(FILE *file_pt)
Definition: elements.h:3084
virtual void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Definition: elements.h:3256
virtual void compute_error(FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm)
Definition: elements.h:3225
virtual void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm)
Definition: elements.h:3292
virtual Node * get_node_at_local_coordinate(const Vector< double > &s) const
Definition: elements.cc:3882
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
virtual void assemble_local_to_eulerian_jacobian(const DShape &dpsids, DenseMatrix< double > &jacobian) const
Definition: elements.cc:1905
int get_node_number(Node *const &node_pt) const
Definition: elements.cc:3814
virtual double compute_physical_size() const
Definition: elements.h:2825
virtual void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Definition: elements.h:3272
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Definition: elements.h:3148
virtual double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2722
double d2shape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx, DShape &d2psidx) const
Definition: elements.cc:3448
virtual Node * vertex_node_pt(const unsigned &j) const
Definition: elements.h:2500
virtual unsigned nscalar_paraview() const
Definition: elements.h:2988
Node ** Node_pt
Storage for pointers to the nodes in the element.
Definition: elements.h:1319
virtual void compute_abs_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error)
Definition: elements.h:3330
double raw_dnodal_position_dt(const unsigned &n, const unsigned &j, const unsigned &i) const
Definition: elements.h:2263
virtual double local_to_eulerian_mapping(const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.h:1508
virtual BulkCoordinateDerivativesFctPt bulk_coordinate_derivatives_fct_pt(const int &face_index) const
Definition: elements.h:3419
virtual void point_output_data(const Vector< double > &s, Vector< double > &data)
Definition: elements.h:2838
unsigned Nnodal_position_type
Definition: elements.h:1344
virtual unsigned nplot_points(const unsigned &nplot) const
Definition: elements.h:3186
void transform_derivatives_diagonal(const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const
Definition: elements.cc:2877
virtual void reset_after_nodal_fd()
Definition: elements.h:1714
virtual void compute_error(FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Calculate the norm of the error and that of the exact solution.
Definition: elements.h:3209
double nodal_position(const unsigned &n, const unsigned &i) const
Definition: elements.h:2317
virtual void transform_derivatives(const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const
Definition: elements.cc:2833
virtual void enable_ALE()
Definition: elements.h:2430
unsigned Elemental_dimension
Definition: elements.h:1330
Node *const & node_pt(const unsigned &n) const
Return a pointer to the local node n (const version)
Definition: elements.h:2192
void transform_second_derivatives_diagonal(const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const
virtual double dshape_eulerian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3325
virtual bool local_coord_is_valid(const Vector< double > &s)
Broken assignment operator.
Definition: elements.h:1813
virtual void dshape_local(const Vector< double > &s, Shape &psi, DShape &dpsids) const
Definition: elements.h:1981
virtual void move_local_coord_back_into_element(Vector< double > &s) const
Definition: elements.h:1824
Data * geom_data_pt(const unsigned &j)
Definition: elements.h:2667
double raw_nodal_value(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: elements.h:2584
FiniteElement(const FiniteElement &)=delete
Broken copy constructor.
virtual unsigned nsub_elements_paraview(const unsigned &nplot) const
Definition: elements.h:2876
virtual void d2shape_local_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsids, DShape &d2psids) const
Definition: elements.cc:3274
void set_n_node(const unsigned &n)
Definition: elements.h:1404
MacroElement * macro_elem_pt()
Access function to pointer to macro element.
Definition: elements.h:1878
double raw_dnodal_position_dt(const unsigned &n, const unsigned &i) const
Definition: elements.h:2256
virtual Node * construct_node(const unsigned &n, TimeStepper *const &time_stepper_pt)
Definition: elements.h:2522
static bool Suppress_output_while_checking_for_inverted_elements
Definition: elements.h:1779
double raw_dnodal_position_gen_dt(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2294
virtual void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const
Definition: elements.h:3027
virtual unsigned nnode_1d() const
Definition: elements.h:2218
unsigned nodal_dimension() const
Return the required Eulerian dimension of the nodes in this element.
Definition: elements.h:2484
virtual double interpolated_dxdt(const Vector< double > &s, const unsigned &i, const unsigned &t)
Definition: elements.cc:4596
int ** Nodal_local_eqn
Definition: elements.h:1323
double raw_nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2576
virtual void describe_nodal_local_dofs(std::ostream &out, const std::string ¤t_string) const
Definition: elements.cc:1727
virtual void get_x_from_macro_element(const Vector< double > &s, Vector< double > &x) const
Definition: elements.h:1934
virtual void get_x_from_macro_element(const unsigned &t, const Vector< double > &s, Vector< double > &x)
Definition: elements.h:1948
virtual void local_fraction_of_node(const unsigned &j, Vector< double > &s_fraction)
Definition: elements.cc:3191
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Definition: elements.h:3174
virtual void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const
Definition: elements.h:3013
virtual Node * construct_boundary_node(const unsigned &n)
Definition: elements.h:2538
unsigned Nnode
Number of nodes in the element.
Definition: elements.h:1326
virtual double J_eulerian_at_knot(const unsigned &ipt) const
Definition: elements.cc:4168
virtual unsigned self_test()
Definition: elements.cc:4440
virtual void identify_field_data_for_interactions(std::set< std::pair< Data *, unsigned >> &paired_field_data)
Definition: elements.cc:5096
virtual ~FiniteElement()
Definition: elements.cc:3173
virtual double d2shape_eulerian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidx, DShape &d2psidx) const
Definition: elements.cc:3502
virtual void set_integration_scheme(Integral *const &integral_pt)
Set the spatial integration scheme.
Definition: elements.cc:3210
void output_paraview(std::ofstream &file_out, const unsigned &nplot) const
Definition: elements.h:2889
void position(const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const
Definition: elements.h:2689
virtual void shape_at_knot(const unsigned &ipt, Shape &psi) const
Definition: elements.cc:3220
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
double raw_nodal_position_gen(const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2282
virtual unsigned nnode_on_face() const
Definition: elements.h:3387
virtual double local_to_eulerian_mapping_diagonal(const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.cc:2588
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
virtual double local_one_d_fraction_of_node(const unsigned &n1d, const unsigned &i)
Definition: elements.h:1858
double dnodal_position_dt(const unsigned &n, const unsigned &i) const
Return the i-th component of nodal velocity: dx/dt at local node n.
Definition: elements.h:2333
double raw_nodal_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:2272
virtual void transform_second_derivatives(const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const
Definition: elements.cc:3125
virtual void output(FILE *file_pt, const unsigned &n_plot)
Definition: elements.h:3095
FiniteElement()
Constructor.
Definition: elements.h:1782
unsigned ngeom_data() const
Definition: elements.h:2660
static const unsigned Default_Initial_Nvalue
Default value for the number of values at a node.
Definition: elements.h:1370
virtual Node * construct_boundary_node(const unsigned &n, TimeStepper *const &time_stepper_pt)
Definition: elements.h:2552
double nodal_position(const unsigned &t, const unsigned &n, const unsigned &i) const
Definition: elements.h:2325
double invert_jacobian(const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
virtual void get_dresidual_dnodal_coordinates(RankThreeTensor< double > &dresidual_dnodal_coordinates)
Definition: elements.cc:3744
virtual void write_paraview_offsets(std::ofstream &file_out, const unsigned &nplot, unsigned &offset_sum) const
Definition: elements.h:2976
virtual CoordinateMappingFctPt face_to_bulk_coordinate_fct_pt(const int &face_index) const
Definition: elements.h:3409
virtual double J_eulerian(const Vector< double > &s) const
Definition: elements.cc:4103
bool has_hanging_nodes() const
Definition: elements.h:2470
double raw_nodal_position(const unsigned &n, const unsigned &i) const
Definition: elements.cc:1686
double local_to_eulerian_mapping(const DShape &dpsids, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.h:1524
void fill_in_jacobian_from_nodal_by_fd(DenseMatrix< double > &jacobian)
Definition: elements.h:1695
virtual void output(std::ostream &outfile, const unsigned &n_plot)
Definition: elements.h:3060
double dJ_eulerian_at_knot(const unsigned &ipt, Shape &psi, DenseMatrix< double > &djacobian_dX) const
Definition: elements.cc:3354
virtual void assemble_eulerian_base_vectors(const DShape &dpsids, DenseMatrix< double > &interpolated_G) const
Definition: elements.cc:2009
virtual void write_paraview_output_offset_information(std::ofstream &file_out, const unsigned &nplot, unsigned &counter) const
Definition: elements.h:2952
void integrate_fct(FiniteElement::SteadyExactSolutionFctPt integrand_fct_pt, Vector< double > &integral)
Integrate Vector-valued function over element.
Definition: elements.cc:4377
Definition: elements.h:5119
const unsigned & boundary_number_in_bulk_mesh() const
Access function for the boundary number in bulk mesh.
Definition: elements.h:5132
void set_boundary_number_in_bulk_mesh(const unsigned &b)
Set function for the boundary number in bulk mesh.
Definition: elements.h:5139
unsigned Boundary_number_in_bulk_mesh
The boundary number in the bulk mesh to which this element is attached.
Definition: elements.h:5171
FreeStandingFaceElement()
Constructor.
Definition: elements.h:5122
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:5154
Definition: elements.h:73
unsigned nexternal_data() const
Return the number of external data objects.
Definition: elements.h:829
virtual void reset_in_external_fd(const unsigned &i)
Definition: elements.h:488
void flush_external_data()
Flush all external data.
Definition: elements.cc:387
virtual unsigned ndof_types() const
Definition: elements.h:1202
virtual void update_in_internal_fd(const unsigned &i)
Definition: elements.h:459
virtual void reset_after_external_fd()
Definition: elements.h:478
virtual void update_before_external_fd()
Definition: elements.h:473
static bool Suppress_warning_about_repeated_external_data
Definition: elements.h:700
void dof_vector(const unsigned &t, Vector< double > &dof)
Return the vector of dof values at time level t.
Definition: elements.h:841
virtual void get_inner_products(Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product)
Definition: elements.h:1095
void set_internal_data_time_stepper(const unsigned &i, TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data)
Definition: elements.h:893
void operator=(const GeneralisedElement &)=delete
Broken assignment operator.
virtual void get_hessian_vector_products(Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
Definition: elements.h:1083
static double Default_fd_jacobian_step
Definition: elements.h:1198
Data *const & internal_data_pt(const unsigned &i) const
Return a pointer to i-th internal data object (const version)
Definition: elements.h:640
bool internal_data_fd(const unsigned &i) const
Definition: elements.h:146
unsigned long * Eqn_number
Definition: elements.h:77
virtual void assign_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.cc:691
virtual void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Definition: elements.h:1221
void fill_in_jacobian_from_internal_by_fd(DenseMatrix< double > &jacobian, const bool &fd_all_data=false)
Definition: elements.h:401
virtual void fill_in_contribution_to_residuals(Vector< double > &residuals)
Definition: elements.h:357
void assign_internal_eqn_numbers(unsigned long &global_number, Vector< double * > &Dof_pt)
Definition: elements.cc:529
bool external_data_fd(const unsigned &i) const
Definition: elements.h:757
virtual void assign_all_generic_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.h:253
void exclude_internal_data_fd(const unsigned &i)
Definition: elements.h:167
unsigned ndof() const
Return the number of equations/dofs in the element.
Definition: elements.h:835
unsigned long eqn_number(const unsigned &ieqn_local) const
Definition: elements.h:704
static std::deque< double * > Dof_pt_deque
Definition: elements.h:231
int ** Data_local_eqn
Definition: elements.h:101
int local_eqn_number(const unsigned long &ieqn_global) const
Definition: elements.h:726
Data *& external_data_pt(const unsigned &i)
Return a pointer to i-th external data object.
Definition: elements.h:659
void fill_in_jacobian_from_external_by_fd(DenseMatrix< double > &jacobian, const bool &fd_all_data=false)
Definition: elements.h:435
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
virtual void fill_in_contribution_to_djacobian_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam)
Definition: elements.cc:1402
virtual void assign_additional_local_eqn_numbers()
Definition: elements.h:263
GeneralisedElement(const GeneralisedElement &)=delete
Broken copy constructor.
virtual void get_residuals(Vector< double > &residuals)
Definition: elements.h:980
Data *const & external_data_pt(const unsigned &i) const
Return a pointer to i-th external data object (const version)
Definition: elements.h:677
virtual void fill_in_contribution_to_inner_products(Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product)
Definition: elements.cc:1543
virtual void get_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &mass_matrix)
Definition: elements.h:1003
virtual void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: elements.cc:1322
virtual void get_dresiduals_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam)
Definition: elements.h:1034
virtual void assign_internal_and_external_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.cc:938
virtual void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:499
unsigned ninternal_data() const
Return the number of internal data objects.
Definition: elements.h:823
void clear_global_eqn_numbers()
Definition: elements.h:207
void include_internal_data_fd(const unsigned &i)
Definition: elements.h:187
void dof_pt_vector(Vector< double * > &dof_pt)
Return the vector of pointers to dof values.
Definition: elements.h:866
virtual void describe_local_dofs(std::ostream &out, const std::string ¤t_string) const
Definition: elements.cc:573
unsigned Ninternal_data
Number of internal data.
Definition: elements.h:107
unsigned Nexternal_data
Number of external data.
Definition: elements.h:110
unsigned add_external_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:307
static bool Suppress_warning_about_repeated_internal_data
Definition: elements.h:696
virtual void update_before_internal_fd()
Definition: elements.h:449
virtual void reset_in_internal_fd(const unsigned &i)
Definition: elements.h:464
virtual void fill_in_contribution_to_dresiduals_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam)
Definition: elements.cc:1358
virtual void fill_in_contribution_to_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &mass_matrix)
Definition: elements.cc:1292
unsigned Ndof
Number of degrees of freedom.
Definition: elements.h:104
int internal_local_eqn(const unsigned &i, const unsigned &j) const
Definition: elements.h:267
virtual void get_inner_product_vectors(Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector)
Definition: elements.h:1106
virtual ~GeneralisedElement()
Virtual destructor to clean up any memory allocated by the object.
Definition: elements.cc:276
virtual void fill_in_contribution_to_hessian_vector_products(Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
Definition: elements.cc:1503
virtual void get_djacobian_and_dmass_matrix_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam)
Definition: elements.h:1061
virtual void fill_in_contribution_to_inner_product_vectors(Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector)
Definition: elements.cc:1571
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
void fill_in_jacobian_from_external_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false)
Definition: elements.cc:1199
virtual void reset_after_internal_fd()
Definition: elements.h:454
virtual void get_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:990
virtual void get_djacobian_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam)
Definition: elements.h:1046
void describe_dofs(std::ostream &out, const std::string ¤t_string) const
Definition: elements.cc:551
void fill_in_jacobian_from_internal_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false)
Definition: elements.cc:1102
void include_external_data_fd(const unsigned &i)
Definition: elements.h:798
Data ** Data_pt
Definition: elements.h:92
virtual void get_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: elements.h:1016
virtual void compute_norm(Vector< double > &norm)
Definition: elements.h:1128
double ** Dof_pt
Definition: elements.h:84
void add_global_eqn_numbers(std::deque< unsigned long > const &global_eqn_numbers, std::deque< double * > const &global_dof_pt)
Definition: elements.cc:156
void add_internal_value_pt_to_map(std::map< unsigned, double * > &map_of_value_pt)
Definition: elements.cc:611
int external_local_eqn(const unsigned &i, const unsigned &j)
Definition: elements.h:311
virtual unsigned self_test()
Definition: elements.cc:1603
std::vector< bool > Data_fd
Definition: elements.h:122
GeneralisedElement()
Constructor: Initialise all pointers and all values to zero.
Definition: elements.h:596
virtual void complete_setup_of_dependencies()
Definition: elements.h:974
virtual void compute_norm(double &norm)
Definition: elements.h:1140
unsigned add_internal_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:62
void exclude_external_data_fd(const unsigned &i)
Definition: elements.h:778
virtual void fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter(double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam)
Definition: elements.cc:1453
virtual void update_in_external_fd(const unsigned &i)
Definition: elements.h:483
Definition: geom_objects.h:101
TimeStepper *& time_stepper_pt()
Definition: geom_objects.h:192
Definition: integral.h:49
Definition: macro_element.h:73
Definition: matrices.h:74
Definition: elements.h:5231
void operator=(const NavierStokesElementWithDiagonalMassMatrices &)=delete
Broken assignment operator.
virtual void get_pressure_and_velocity_mass_matrix_diagonal(Vector< double > &press_mass_diag, Vector< double > &veloc_mass_diag, const unsigned &which_one=0)=0
virtual ~NavierStokesElementWithDiagonalMassMatrices()
Virtual destructor.
Definition: elements.h:5237
NavierStokesElementWithDiagonalMassMatrices(const NavierStokesElementWithDiagonalMassMatrices &)=delete
Broken copy constructor.
NavierStokesElementWithDiagonalMassMatrices()
Empty constructor.
Definition: elements.h:5234
double dx_gen_dt(const unsigned &k, const unsigned &i) const
Definition: nodes.cc:1865
double & x(const unsigned &i)
Return the i-th nodal coordinate.
Definition: nodes.h:1060
double & x_gen(const unsigned &k, const unsigned &i)
Definition: nodes.h:1126
void position(Vector< double > &pos) const
Definition: nodes.cc:2499
unsigned ndim() const
Return (Eulerian) spatial dimension of the node.
Definition: nodes.h:1054
double position_gen(const unsigned &k, const unsigned &i) const
Definition: nodes.cc:2592
virtual void get_coordinates_on_boundary(const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta)
Definition: nodes.cc:2379
double raw_value(const unsigned &i) const
Definition: nodes.h:1455
double dposition_dt(const unsigned &i) const
Definition: nodes.cc:2659
double dx_dt(const unsigned &i) const
Return the i-th component of nodal velocity: dx/dt.
Definition: nodes.cc:1817
void resize(const unsigned &n_value)
Resize the number of equations.
Definition: nodes.cc:2167
double dposition_gen_dt(const unsigned &k, const unsigned &i) const
Definition: nodes.cc:2708
double value(const unsigned &i) const
Definition: nodes.cc:2408
Definition: oomph_definitions.h:222
Definition: oomph_definitions.h:267
Definition: elements.h:3439
PointElement()
Constructor.
Definition: elements.h:3442
void shape(const Vector< double > &s, Shape &psi) const
Broken assignment operator.
Definition: elements.cc:7529
PointElement(const PointElement &)=delete
Broken copy constructor.
static PointIntegral Default_integration_scheme
Default integration scheme.
Definition: elements.h:3473
void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Get local coordinates of node j in the element; vector sets its own size.
Definition: elements.h:3462
Definition: integral.h:89
A Rank 4 Tensor class.
Definition: matrices.h:1701
A Rank 3 Tensor class.
Definition: matrices.h:1370
Definition: elements.h:5193
SolidElementWithDiagonalMassMatrix()
Empty constructor.
Definition: elements.h:5196
void operator=(const SolidElementWithDiagonalMassMatrix &)=delete
Broken assignment operator.
SolidElementWithDiagonalMassMatrix(const SolidElementWithDiagonalMassMatrix &)=delete
Broken copy constructor.
virtual void get_mass_matrix_diagonal(Vector< double > &mass_diag)=0
virtual ~SolidElementWithDiagonalMassMatrix()
Virtual destructor.
Definition: elements.h:5199
Definition: elements.h:4914
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:4921
double interpolated_xi(const Vector< double > &s, const unsigned &i) const
Definition: elements.h:4937
void interpolated_xi(const Vector< double > &s, Vector< double > &xi) const
Definition: elements.h:4957
Definition: elements.h:3561
unsigned lagrangian_dimension() const
Definition: elements.h:3774
virtual void set_macro_elem_pt(MacroElement *macro_elem_pt, MacroElement *undeformed_macro_elem_pt)
Definition: elements.h:3689
virtual void set_macro_elem_pt(MacroElement *macro_elem_pt)
Definition: elements.h:3680
double lagrangian_position(const unsigned &n, const unsigned &i) const
Return i-th Lagrangian coordinate at local node n.
Definition: elements.h:3905
void set_undeformed_macro_elem_pt(MacroElement *undeformed_macro_elem_pt)
Definition: elements.h:3699
Node * construct_node(const unsigned &n)
Construct the local node n and return a pointer to it.
Definition: elements.h:3791
void disable_solve_for_consistent_newmark_accel()
Set to reset the problem being solved to be the standard problem.
Definition: elements.h:3972
void describe_solid_local_dofs(std::ostream &out, const std::string ¤t_string) const
Classifies dofs locally for solid specific aspects.
Definition: elements.cc:6874
double lagrangian_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:3912
double(* MultiplierFctPt)(const Vector< double > &xi)
Definition: elements.h:3582
double raw_lagrangian_position_gen(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:3897
MacroElement * undeformed_macro_elem_pt()
Access function to pointer to "undeformed" macro element.
Definition: elements.h:3706
Data * geom_data_pt(const unsigned &j)
Definition: elements.h:3615
virtual void get_x_and_xi(const Vector< double > &s, Vector< double > &x_fe, Vector< double > &x, Vector< double > &xi_fe, Vector< double > &xi) const
Definition: elements.h:3659
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:4185
int * Position_local_eqn
Definition: elements.h:4281
virtual void assemble_local_to_lagrangian_jacobian2(const DShape &d2psids, DenseMatrix< double > &jacobian2) const
Definition: elements.cc:6586
void fill_in_jacobian_from_solid_position_by_fd(DenseMatrix< double > &jacobian)
Definition: elements.h:4225
virtual void assign_solid_local_eqn_numbers(const bool &store_local_dof)
Assign local equation numbers for the solid equations in the element.
Definition: elements.cc:6898
double dshape_lagrangian(const Vector< double > &s, Shape &psi, DShape &dpsidxi) const
Definition: elements.cc:6710
double raw_lagrangian_position(const unsigned &n, const unsigned &i) const
Definition: elements.h:3890
unsigned nnodal_lagrangian_type() const
Definition: elements.h:3785
void enable_solve_for_consistent_newmark_accel()
Definition: elements.h:3966
double zeta_nodal(const unsigned &n, const unsigned &k, const unsigned &i) const
Definition: elements.h:3642
unsigned Lagrangian_dimension
Definition: elements.h:4285
virtual void update_before_solid_position_fd()
Definition: elements.h:4240
bool Solve_for_consistent_newmark_accel_flag
Definition: elements.h:4302
MacroElement * Undeformed_macro_elem_pt
Pointer to the element's "undeformed" macro element (NULL by default)
Definition: elements.h:4076
MultiplierFctPt & multiplier_fct_pt()
Definition: elements.h:3979
SolidInitialCondition * Solid_ic_pt
Pointer to object that specifies the initial condition.
Definition: elements.h:4131
void fill_in_residuals_for_solid_ic(Vector< double > &residuals)
Definition: elements.h:4018
virtual double d2shape_lagrangian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidxi, DShape &d2psidxi) const
Definition: elements.cc:6832
void fill_in_generic_jacobian_for_solid_ic(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Definition: elements.cc:7376
virtual void J_lagrangian(const Vector< double > &s) const
Definition: elements.h:3936
unsigned ngeom_data() const
Broken assignment operator.
Definition: elements.h:3608
void set_nnodal_lagrangian_type(const unsigned &nlagrangian_type)
Definition: elements.h:4070
virtual double local_to_lagrangian_mapping_diagonal(const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.cc:6643
unsigned Nnodal_lagrangian_type
Definition: elements.h:4293
virtual void update_in_solid_position_fd(const unsigned &i)
Definition: elements.h:4250
int position_local_eqn(const unsigned &n, const unsigned &k, const unsigned &j) const
Definition: elements.h:4137
virtual double local_to_lagrangian_mapping(const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.h:4082
virtual void get_residuals_for_solid_ic(Vector< double > &residuals)
Definition: elements.h:4003
virtual void assemble_local_to_lagrangian_jacobian(const DShape &dpsids, DenseMatrix< double > &jacobian) const
Definition: elements.cc:6528
virtual double interpolated_xi(const Vector< double > &s, const unsigned &i) const
Definition: elements.cc:7104
Node * construct_boundary_node(const unsigned &n, TimeStepper *const &time_stepper_pt)
Definition: elements.h:3846
void identify_geometric_data(std::set< Data * > &geometric_data_pt)
Definition: elements.h:3624
virtual void reset_in_solid_position_fd(const unsigned &i)
Definition: elements.h:4255
virtual void interpolated_dxids(const Vector< double > &s, DenseMatrix< double > &dxids) const
Definition: elements.cc:7180
virtual double dshape_lagrangian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidxi) const
Definition: elements.cc:6737
virtual void fill_in_jacobian_from_solid_position_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.cc:6985
SolidFiniteElement()
Constructor: Set defaults.
Definition: elements.h:3585
virtual bool has_internal_solid_data()
Definition: elements.h:3574
void fill_in_jacobian_for_solid_ic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: elements.h:4035
double multiplier(const Vector< double > &xi)
Definition: elements.h:4308
virtual void assign_all_generic_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: elements.h:3867
SolidInitialCondition *& solid_ic_pt()
Pointer to object that describes the initial condition.
Definition: elements.h:3955
double d2shape_lagrangian(const Vector< double > &s, Shape &psi, DShape &dpsidxi, DShape &d2psidxi) const
Definition: elements.cc:6781
Node * construct_boundary_node(const unsigned &n)
Definition: elements.h:3827
void compute_norm(double &el_norm)
Definition: elements.cc:6442
virtual double J_lagrangian_at_knot(const unsigned &ipt) const
Definition: elements.h:3946
void describe_local_dofs(std::ostream &out, const std::string ¤t_string) const
Definition: elements.cc:6514
SolidFiniteElement(const SolidFiniteElement &)=delete
Broken copy constructor.
Node * construct_node(const unsigned &n, TimeStepper *const &time_stepper_pt)
Definition: elements.h:3809
MultiplierFctPt Multiplier_fct_pt
Definition: elements.h:4276
virtual ~SolidFiniteElement()
Destructor to clean up any allocated memory.
Definition: elements.cc:6629
void fill_in_jacobian_for_newmark_accel(DenseMatrix< double > &jacobian)
Definition: elements.cc:7227
double local_to_lagrangian_mapping(const DShape &dpsids, DenseMatrix< double > &inverse_jacobian) const
Definition: elements.h:4097
virtual void reset_after_solid_position_fd()
Definition: elements.h:4245
void set_lagrangian_dimension(const unsigned &lagrangian_dimension)
Definition: elements.h:3565
MultiplierFctPt multiplier_fct_pt() const
Definition: elements.h:3988
Definition: elements.h:3496
GeomObject *& geom_object_pt()
Definition: elements.h:3511
unsigned IC_time_deriv
Which time derivative (0,1,2) are we currently assigning.
Definition: elements.h:3529
GeomObject * Geom_object_pt
Definition: elements.h:3526
void operator=(const SolidInitialCondition &)=delete
Broken assignment operator.
SolidInitialCondition(GeomObject *geom_object_pt)
Constructor: Pass geometric object; initialise time deriv to 0.
Definition: elements.h:3499
SolidInitialCondition(const SolidInitialCondition &)=delete
Broken copy constructor.
unsigned & ic_time_deriv()
Which time derivative are we currently assigning?
Definition: elements.h:3517
Solid point element.
Definition: elements.h:4980
Definition: oomph_utilities.h:1109
Definition: timesteppers.h:231
virtual unsigned nprev_values() const =0
Number of previous values available: 0 for static, 1 for BDF<1>,...
void initialise(const _Tp &__value)
Iterate over all values and set to the desired value.
Definition: oomph-lib/src/generic/Vector.h:167
RealScalar s
Definition: level1_cplx_impl.h:130
char char char int int * k
Definition: level2_impl.h:374
EIGEN_STRONG_INLINE const Eigen::CwiseBinaryOp< Eigen::internal::scalar_zeta_op< typename DerivedX::Scalar >, const DerivedX, const DerivedQ > zeta(const Eigen::ArrayBase< DerivedX > &x, const Eigen::ArrayBase< DerivedQ > &q)
Definition: SpecialFunctionsArrayAPI.h:152
void plot()
Plot.
Definition: sphere_scattering.cc:180
void exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Definition: unstructured_two_d_curved.cc:301
int error
Definition: calibrate.py:297
ElementGeometry
Definition: elements.h:1240
@ Q
Definition: elements.h:1241
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
unsigned Max_newton_iterations
Maximum number of newton iterations.
Definition: elements.cc:1654
double Newton_tolerance
Convergence tolerance for the newton solver.
Definition: elements.cc:1651
unsigned N_local_points
Definition: elements.cc:1665
double Radius_multiplier_for_fast_exit_from_locate_zeta
Definition: elements.cc:1659
std::string to_string(T object, unsigned float_precision=8)
Definition: oomph_utilities.h:189
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
void(* BulkCoordinateDerivativesFctPt)(const Vector< double > &s, DenseMatrix< double > &ds_bulk_dsface, unsigned &interior_direction)
Definition: elements.h:1290
void(* CoordinateMappingFctPt)(const Vector< double > &s, Vector< double > &s_bulk)
Definition: elements.h:1282
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
unsigned el_dim
dimension
Definition: overloaded_cartesian_element_body.h:30
void product(const MatrixType &m)
Definition: product.h:42
void set(Container &c, Position position, const Value &value)
Definition: stdlist_overload.cpp:36
std::ofstream out("Result.txt")
const char Y
Definition: test/EulerAngles.cpp:32
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2