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? More...
#include <hijacked_elements.h>
Public Member Functions  
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)  
Constructor used for hijacking face elements with specification of ID of additional variables. More...  
Data *  hijack_internal_value (const unsigned &n, const unsigned &i) 
Hijack the ith value stored at internal data n. Return a custommade (copied) data object that contains only the hijacked value. This can be used as the input to other elements. Note that the calling program assumes responsibility for this data object and must clean it up. More...  
Data *  hijack_external_value (const unsigned &n, const unsigned &i) 
Hijack the ith value stored at external data n. Return a custommade (copied) data object that contains only the hijacked value. Note that the calling program assumes responsibility for this data object and must clean it up. More...  
Data *  hijack_nodal_value (const unsigned &n, const unsigned &i) 
Hijack the ith value stored at node n. Return a custommade (copied) data object that contains only the hijacked value. Once again, the calling program must clean up the allocated Data object. More...  
Data *  hijack_nodal_position_value (const unsigned &n, const unsigned &i) 
Hijack the ith positional value stored at node n. Return a custommade (copied) data object that contains only the hijacked value. Again, responsibility for the memory allocated lies with the calling function. More...  
Data *  hijack_nodal_spine_value (const unsigned &n, const unsigned &i) 
Hijack the ith value stored at the spine that affects local node n. Return a custommade (copied) data object that contains only the hijacked value. Deletion must be handled at the higher level. More...  
void  assign_local_eqn_numbers (const bool &store_local_dof_pt) 
Set up the local equation numbers for the underlying element, then set up the local arrays to hold the hijacked variables. If the boolean argument is true then pointers to the associated degrees of freedom are stored in the array Dof_pt. More...  
void  get_residuals (Vector< double > &residuals) 
Get the residuals from the underlying element, but then wipe the entries in the residual vector that correspond to hijacked values – they will be computed by other elements. More...  
void  get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) 
Get the residuals and Jacobian matrix from the underlying element, but then wipe the entries in the residual vector and the rows in the Jacobian matrix that correspond to hijacked values – they will be computed by other elements. More...  
Public Member Functions inherited from oomph::HijackedElementBase  
HijackedElementBase ()  
Constructor, initialise the pointer to the equation numbers for the storage to zero. More...  
virtual  ~HijackedElementBase () 
Destructor, destroy the storage for the equation numbers. More...  
void  unhijack_all_data () 
Reset the hijacked data pt, so that none of the equations in the element are hijacked. More...  
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...  
Additional Inherited Members  
Protected Member Functions inherited from oomph::HijackedElementBase  
void  hijack_global_eqn (long *const &global_eqn_pt) 
Mark the global equation, addressed by global_eqn_pt, as hijacked by this element. More...  
void  unhijack_global_eqn (long *const &global_eqn_pt) 
The global equation, addressed by global_eqn_pt, is no longer hijacked by this element. More...  
Protected Attributes inherited from oomph::HijackedElementBase  
std::set< long * > *  Hijacked_global_eqn_number_pt 
Vector< int > *  Hijacked_local_eqn_number_pt 
Pointer to a vector of integers containing the local equation numbers of any hijacked variables in the element. More...  
double *  Residual_multiplier_pt 
Pointer to a double that multiplies the contribution to the residuals from the original element. This is usually used as a homotopy parameter to permit a smooth transition between different types of boundary conditions, rather than switching them on or off abruptly. More...  
Static Protected Attributes inherited from oomph::HijackedElementBase  
static double  Default_residual_multiplier =0.0 
Static default value for the double that multiplies the original residuals. More...  
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?
Definition at line 130 of file hijacked_elements.h.

inline 
Constructor, call the constructors of the base elements.
Definition at line 136 of file hijacked_elements.h.

inline 
Constructor used for hijacking face elements.
Definition at line 139 of file hijacked_elements.h.

inline 
Constructor used for hijacking face elements with specification of ID of additional variables.
Definition at line 146 of file hijacked_elements.h.

inline 
Set up the local equation numbers for the underlying element, then set up the local arrays to hold the hijacked variables. If the boolean argument is true then pointers to the associated degrees of freedom are stored in the array Dof_pt.
Definition at line 270 of file hijacked_elements.h.

inline 
Get the residuals and Jacobian matrix from the underlying element, but then wipe the entries in the residual vector and the rows in the Jacobian matrix that correspond to hijacked values – they will be computed by other elements.
Definition at line 342 of file hijacked_elements.h.

inline 
Get the residuals from the underlying element, but then wipe the entries in the residual vector that correspond to hijacked values – they will be computed by other elements.
Definition at line 324 of file hijacked_elements.h.

inline 
Hijack the ith value stored at external data n. Return a custommade (copied) data object that contains only the hijacked value. Note that the calling program assumes responsibility for this data object and must clean it up.
Definition at line 175 of file hijacked_elements.h.

inline 
Hijack the ith value stored at internal data n. Return a custommade (copied) data object that contains only the hijacked value. This can be used as the input to other elements. Note that the calling program assumes responsibility for this data object and must clean it up.
Definition at line 158 of file hijacked_elements.h.

inline 
Hijack the ith positional value stored at node n. Return a custommade (copied) data object that contains only the hijacked value. Again, responsibility for the memory allocated lies with the calling function.
Definition at line 207 of file hijacked_elements.h.

inline 
Hijack the ith value stored at the spine that affects local node n. Return a custommade (copied) data object that contains only the hijacked value. Deletion must be handled at the higher level.
Definition at line 238 of file hijacked_elements.h.

inline 
Hijack the ith value stored at node n. Return a custommade (copied) data object that contains only the hijacked value. Once again, the calling program must clean up the allocated Data object.
Definition at line 191 of file hijacked_elements.h.
Referenced by oomph::BiharmonicFluidProblem< DIM >::impose_traction_free_edge().