29 #ifndef OOMPH_DISPLACEMENT_CONTROL_ELEMENT_HEADER
30 #define OOMPH_DISPLACEMENT_CONTROL_ELEMENT_HEADER
35 #include <oomph-lib-config.h>
124 const unsigned& controlled_direction,
125 double* control_position_value_pt,
137 "Displacement control data must only contain a single value!\n",
138 OOMPH_CURRENT_FUNCTION,
139 OOMPH_EXCEPTION_LOCATION);
154 for (
unsigned j = 0; j < nnode; j++)
179 const unsigned& controlled_direction,
180 double* control_position_value_pt)
201 for (
unsigned j = 0; j < nnode; j++)
275 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const
281 std::pair<unsigned long, unsigned> dof_lookup;
291 dof_lookup.first = this->
eqn_number(local_eqn_number);
292 dof_lookup.second = 0;
295 dof_lookup_list.push_front(dof_lookup);
A class that represents a collection of data; each Data object may contain many different individual ...
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Displacement control element: In the "normal" formulation of solid mechanics problems,...
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Add the element's contribution to its residual vector: The displacement constraint....
void operator=(const DisplacementControlElement &)=delete
Broken assignment operator.
Data * displacement_control_load_pt() const
Pointer to Data object whose one-and-only value represents the load that is adjusted to allow displac...
SolidFiniteElement * Controlled_element_pt
Pointer to SolidFiniteElement at which control displacement is applied.
double * Control_position_value_pt
Pointer to the value that stores the prescribed coordinate of the control point.
DisplacementControlElement(SolidFiniteElement *controlled_element_pt, const Vector< double > &controlled_point, const unsigned &controlled_direction, double *control_position_value_pt, Data *displacement_control_load_pt)
Constructor. Pass:
Vector< double > Controlled_point
Vector of local coordinates of point at which control displacement is applied.
void assign_additional_local_eqn_numbers()
Store local equation number of displacement control equation.
unsigned Load_data_index
In which component (in the vector of the element's internal or external Data) is the load stored?
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contain...
DisplacementControlElement(SolidFiniteElement *controlled_element_pt, const Vector< double > &controlled_point, const unsigned &controlled_direction, double *control_position_value_pt)
Constructor. Pass:
bool Load_data_created_internally
Flag to indicate if load data was created internally or externally (and is therefore stored in the el...
unsigned ndof_types() const
The number of "DOF" that degrees of freedom in this element are sub-divided into: Just the control pr...
DisplacementControlElement(const DisplacementControlElement &)=delete
Broken copy constructor.
unsigned Controlled_direction
Coordinate direction in which the displacement of the control point is controlled.
Data * Displacement_control_load_pt
Pointer to Data item whose one-and-only value contains the load value that is being adjusted to allow...
int Displ_ctrl_local_eqn
Local equation number of the control-displacement equation.
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
unsigned nnode() const
Return the number of nodes.
A Generalised Element class.
unsigned add_internal_data(Data *const &data_pt, const bool &fd=true)
Add a (pointer to an) internal data object to the element and return the index required to obtain it ...
unsigned long eqn_number(const unsigned &ieqn_local) const
Return the global equation number corresponding to the ieqn_local-th local equation number.
int local_eqn_number(const unsigned long &ieqn_global) const
Return the local equation number corresponding to the ieqn_global-th global equation number....
int internal_local_eqn(const unsigned &i, const unsigned &j) const
Return the local equation number corresponding to the j-th value stored at the i-th internal data.
int external_local_eqn(const unsigned &i, const unsigned &j)
Return the local equation number corresponding to the j-th value stored at the i-th external data.
unsigned add_external_data(Data *const &data_pt, const bool &fd=true)
Add a (pointer to an) external data object to the element and return its index (i....
An OomphLibError object which should be thrown when an run-time error is encountered....
////////////////////////////////////////////////////////////////////// //////////////////////////////...
A Class for nodes that deform elastically (i.e. position is an unknown in the problem)....
Data *const & variable_position_pt() const
Pointer to variable_position data (const version)
//////////////////////////////////////////////////////////////////// ////////////////////////////////...