29 #ifndef OOMPH_HIJACKED_ELEMENTS_HEADER
30 #define OOMPH_HIJACKED_ELEMENTS_HEADER
130 template<
class ELEMENT>
147 const int& face_index,
148 const unsigned&
id = 0)
162 const bool& return_data =
true)
165 Data* temp_data_pt = 0;
190 const bool& return_data =
true)
193 Data* temp_data_pt = 0;
216 const bool& return_data =
true)
219 Data* temp_data_pt = 0;
242 const bool& return_data =
true)
246 if (solid_node_pt == 0)
248 std::string error_message =
"Failed to cast to SolidNode\n ";
249 error_message +=
"You may be trying to hijack a non-elastic element\n";
256 Data* temp_data_pt = 0;
281 const bool& return_data =
true)
285 if (spine_node_pt == 0)
287 std::string error_message =
"Failed to cast to SpineNode\n ";
288 error_message +=
"You may be trying to hijack a non-spine element\n";
295 Data* temp_data_pt = 0;
336 ELEMENT::assign_local_eqn_numbers(store_local_dof_pt);
345 unsigned n_dof = this->ndof();
346 for (
unsigned i = 0;
i < n_dof;
i++)
349 for (std::set<long*>::iterator it =
359 unsigned long hijacked_eqn_number = *(*it);
363 if (hijacked_eqn_number == this->eqn_number(
i))
384 for (
unsigned i = 0;
i < n_hijacked;
i++)
398 ELEMENT::get_jacobian(residuals, jacobian);
401 unsigned n_dof = this->ndof();
402 for (
unsigned i = 0;
i < n_hijacked;
i++)
409 for (
unsigned j = 0;
j < n_dof;
j++)
423 template<
class ELEMENT>
437 template<
class ELEMENT>
452 template<
class ELEMENT>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
long * eqn_number_pt(const unsigned &i)
Return the pointer to the equation number of the i-th stored variable.
Definition: nodes.h:358
FaceGeometry()
Constructor.
Definition: hijacked_elements.h:443
FaceGeometry()
Constructor.
Definition: hijacked_elements.h:428
FaceGeometry()
Constructor.
Definition: hijacked_elements.h:458
Definition: elements.h:4998
Definition: elements.h:1313
Definition: hijacked_elements.h:45
void unhijack_all_data()
Definition: hijacked_elements.h:64
double * Residual_multiplier_pt
Definition: hijacked_elements.h:98
const double & residual_multiplier() const
Return the value of the residual multiplier.
Definition: hijacked_elements.h:70
double *& residual_multiplier_pt()
Return the pointer to the residual multiplier.
Definition: hijacked_elements.h:76
std::set< long * > * Hijacked_global_eqn_number_pt
Definition: hijacked_elements.h:86
void unhijack_global_eqn(long *const &global_eqn_pt)
Definition: hijacked_elements.cc:79
void hijack_global_eqn(long *const &global_eqn_pt)
Definition: hijacked_elements.cc:62
HijackedElementBase()
Definition: hijacked_elements.h:49
Vector< int > * Hijacked_local_eqn_number_pt
Definition: hijacked_elements.h:91
virtual ~HijackedElementBase()
Destructor, destroy the storage for the equation numbers.
Definition: hijacked_elements.cc:41
static double Default_residual_multiplier
Definition: hijacked_elements.h:102
Definition: hijacked_elements.h:132
void get_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: hijacked_elements.h:395
Data * hijack_nodal_position_value(const unsigned &n, const unsigned &i, const bool &return_data=true)
Definition: hijacked_elements.h:240
Data * hijack_nodal_spine_value(const unsigned &n, const unsigned &i, const bool &return_data=true)
Definition: hijacked_elements.h:279
Hijacked(FiniteElement *const &element_pt, const int &face_index)
Constructor used for hijacking face elements.
Definition: hijacked_elements.h:138
Data * hijack_internal_value(const unsigned &n, const unsigned &i, const bool &return_data=true)
Definition: hijacked_elements.h:160
Data * hijack_external_value(const unsigned &n, const unsigned &i, const bool &return_data=true)
Definition: hijacked_elements.h:188
Hijacked()
Constructor, call the constructors of the base elements.
Definition: hijacked_elements.h:135
Hijacked(FiniteElement *const &element_pt, const int &face_index, const unsigned &id=0)
Definition: hijacked_elements.h:146
Data * hijack_nodal_value(const unsigned &n, const unsigned &i, const bool &return_data=true)
Definition: hijacked_elements.h:214
void get_residuals(Vector< double > &residuals)
Definition: hijacked_elements.h:377
void assign_local_eqn_numbers(const bool &store_local_dof_pt)
Definition: hijacked_elements.h:318
Definition: oomph_definitions.h:222
Data *const & variable_position_pt() const
Pointer to variable_position data (const version)
Definition: nodes.h:1765
Spine *& spine_pt()
Access function to spine.
Definition: spines.h:372
Data *& spine_height_pt()
Access function to Data object that stores the spine height.
Definition: spines.h:156
void get_residuals(const Vector< double > ¶m, const Vector< double > &unknowns, Vector< double > &residuals)
Global residual fct.
Definition: spring_contact.cc:65
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2