|
| Hijacked () |
| Constructor, call the constructors of the base elements. More...
|
|
| Hijacked (FiniteElement *const &element_pt, const int &face_index) |
| Constructor used for hijacking face elements. More...
|
|
| Hijacked (FiniteElement *const &element_pt, const int &face_index, const unsigned &id=0) |
|
Data * | hijack_internal_value (const unsigned &n, const unsigned &i, const bool &return_data=true) |
|
Data * | hijack_external_value (const unsigned &n, const unsigned &i, const bool &return_data=true) |
|
Data * | hijack_nodal_value (const unsigned &n, const unsigned &i, const bool &return_data=true) |
|
Data * | hijack_nodal_position_value (const unsigned &n, const unsigned &i, const bool &return_data=true) |
|
Data * | hijack_nodal_spine_value (const unsigned &n, const unsigned &i, const bool &return_data=true) |
|
void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
|
void | get_residuals (Vector< double > &residuals) |
|
void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
|
| HijackedElementBase () |
|
virtual | ~HijackedElementBase () |
| Destructor, destroy the storage for the equation numbers. More...
|
|
void | unhijack_all_data () |
|
const double & | residual_multiplier () const |
| Return the value of the residual multiplier. More...
|
|
double *& | residual_multiplier_pt () |
| Return the pointer to the residual multiplier. More...
|
|
template<class ELEMENT>
class oomph::Hijacked< ELEMENT >
Hijacked elements are elements in which one or more Data values that affect the element's residuals, are determined by another element – the data values are then said to have been hijacked by another element. The main functionality added by the Hijacked element class is that it wipes out those entries in the element's residual vector and those rows in the element's Jacobian matrix that are determined by the "other" elements that have hijacked the values. Note that for continuation in homotopy parameters, it may be desriable to multiply the residuals and corresponding jacobian entries by a "homotopy parameter". The value of this parameter can be set by assigning residual_multiplier_pt() which has a default value of zero. Note: it would be possible to extend the functionality so that different residuals are multiplied by different values, but will this ever be required?
Hijack the i-th positional value stored at node n. Optionaly return a custom-made (copied) data object that contains only the hijacked value. Again, responsibility for the memory allocated lies with the calling function. The default is that the data object is returned
245 SolidNode* solid_node_pt =
dynamic_cast<SolidNode*
>(this->node_pt(
n));
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;
263 new HijackedData(
i, solid_node_pt->variable_position_pt());
268 solid_node_pt->variable_position_pt()->eqn_number_pt(
i));
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
References oomph::Data::eqn_number_pt(), oomph::HijackedElementBase::hijack_global_eqn(), i, n, OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Global_string_for_annotation::string(), and oomph::SolidNode::variable_position_pt().