A Class for nodes that deform elastically (i.e. position is an unknown in the problem). The idea is that the Eulerian positions are stored in a Data object and the Lagrangian coordinates are stored in addition. The pointer that addresses the Eulerian positions is set to the pointer to Value in the Data object. Hence, SolidNode uses knowledge of the internal structure of Data and must be a friend of the Data class. In order to allow a mesh to deform via an elastic-style equation in deforming-domain problems, the positions are stored separately from the values, so that elastic problems may be combined with any other type of problem. More...
#include <nodes.h>
Public Member Functions | |
SolidNode () | |
Default Constructor. More... | |
SolidNode (const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value) | |
Steady constructor. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.). The Eulerian dimension of the Node is n_dim and we have n_position_type (generalised) Eulerian coordinates. There are initial_n_value values stored at this node. More... | |
SolidNode (TimeStepper *const &time_stepper_pt, const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &Nposition_type, const unsigned &initial_n_value) | |
Unsteady constructor. Allocates storage for initial_n_value nodal values with history values as required by timestepper. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.)/ The Eulerian dimension of the Node is n_dim and we have n_position_type generalised Eulerian coordinates. More... | |
virtual | ~SolidNode () |
Destructor that cleans up the additional memory allocated in SolidNodes. More... | |
SolidNode (const SolidNode &solid_node)=delete | |
Broken copy constructor. More... | |
void | operator= (const SolidNode &)=delete |
Broken assignment operator. More... | |
void | copy (SolidNode *orig_node_pt) |
Copy nodal positions and associated data from specified node object. More... | |
void | dump (std::ostream &dump_file) const |
Dump nodal positions (variable and fixed) and associated data to file for restart. More... | |
void | read (std::ifstream &restart_file) |
Read nodal positions (variable and fixed) and associated data from file for restart. More... | |
const Data & | variable_position () const |
Return the variable_position data (const version) More... | |
Data *const & | variable_position_pt () const |
Pointer to variable_position data (const version) More... | |
void | set_external_variable_position_pt (Data *const &data_pt) |
Set the variable position data from an external data object. More... | |
void | set_position_time_stepper (TimeStepper *const &position_time_stepper_pt, const bool &preserve_existing_data) |
Set a new position timestepper be resizing the appropriate storage Overloaded from the basic implementation to take into account the fact that position is now Data. More... | |
bool | does_pointer_correspond_to_position_data (double *const ¶meter_pt) |
Overload the check whether the pointer parameter_pt addresses position data values. More... | |
bool | position_is_a_copy () const |
Return whether any position component has been copied. More... | |
bool | position_is_a_copy (const unsigned &i) const |
Return whether the position coordinate i has been copied. More... | |
const long & | position_eqn_number (const unsigned &k, const unsigned &i) const |
Return the equation number for generalised Eulerian coordinate: type of coordinate: k, coordinate direction: i. More... | |
bool | position_is_pinned (const unsigned &i) |
Test whether the i-th coordinate is pinned, 0: false; 1: true. More... | |
bool | position_is_pinned (const unsigned &k, const unsigned &i) |
Test whether the k-th type of the i-th coordinate is pinned 0: false; 1: true. More... | |
void | pin_position (const unsigned &i) |
Pin the nodal position. More... | |
void | pin_position (const unsigned &k, const unsigned &i) |
Pin the generalised nodal position. ‘Type’: k; Coordinate direction: i. More... | |
void | unpin_position (const unsigned &i) |
Unpin the nodal position. More... | |
void | unpin_position (const unsigned &k, const unsigned &i) |
Unpin the generalised nodal position. ‘Type’: k; Coordinate direction: i. More... | |
void | pin_all () |
Pin all the stored variables (Overloaded) More... | |
void | unpin_all () |
Unpin all the stored variables (Overloaded) More... | |
void | constrain_positions () |
Overload the constrain positions function to constrain all position values. More... | |
void | unconstrain_positions () |
Overload the unconstrain positions function to unconstrain all position values. More... | |
unsigned | nlagrangian () const |
Return number of lagrangian coordinates. More... | |
unsigned | nlagrangian_type () const |
Number of types of Lagrangian coordinates used to interpolate the Lagrangian coordinates within the element. More... | |
double & | xi (const unsigned &i) |
Reference to i-th Lagrangian position. More... | |
const double & | xi (const unsigned &i) const |
Reference to i-th Lagrangian position (const version) More... | |
double & | xi_gen (const unsigned &k, const unsigned &i) |
Reference to the generalised Lagrangian position. ‘Type’: k; 'Coordinate direction: i. More... | |
const double & | xi_gen (const unsigned &k, const unsigned &i) const |
Reference to the generalised Lagrangian position. ‘Type’: k; 'Coordinate direction: i. (const version. More... | |
double | lagrangian_position (const unsigned &i) const |
Return lagrangian coordinate either directly or via hanging node representation. More... | |
double | lagrangian_position_gen (const unsigned &k, const unsigned &i) const |
Return generalised lagrangian coordinate either directly or via hanging node representation. More... | |
void | assign_eqn_numbers (unsigned long &global_number, Vector< double * > &dof_pt) |
Overload the assign equation numbers routine. More... | |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
Function to describe the dofs of the Node. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...) More... | |
void | add_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
Overload the function add_values_to_map so that it also adds the variable position data. More... | |
void | add_values_to_vector (Vector< double > &vector_of_values) |
Add all data, position and time history values to the vector Overload to add the Lagrangian coordinates to the vector. More... | |
void | read_values_from_vector (const Vector< double > &vector_of_values, unsigned &index) |
Read all data and time history values from the vector starting from index. On return the index will be set the value at the end of the data that has been read in Overload to add the position information and Lagrangian coordinates. More... | |
void | add_eqn_numbers_to_vector (Vector< long > &vector_of_eqn_numbers) |
Add all equation numbers to the vector in the internal storage order. Overload to add equation numbers associated with the positional dofs. More... | |
void | read_eqn_numbers_from_vector (const Vector< long > &vector_of_eqn_numbers, unsigned &index) |
Read all equation numbers from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in Overload to include the equation numbrs associated with the positional dofs. More... | |
void | node_update (const bool &update_all_time_levels_for_new_node=false) |
Overload node update function: Since the position of SolidNodes is determined by unknowns, there's nothing to be done apart from performing the auxiliary node update function (if any) More... | |
Public Member Functions inherited from oomph::Node | |
Node () | |
Default constructor. More... | |
Node (const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value, const bool &allocate_x_position=true) | |
Steady constructor, for a Node of spatial dimension n_dim. Allocates storage for initial_n_value values. NPosition_type is the number of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements, etc). More... | |
Node (TimeStepper *const &time_stepper_pt, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value, const bool &allocate_x_position=true) | |
Unsteady constructor for a node of spatial dimension n_dim. Allocates storage for initial_n_value values with history values as required by the timestepper. n_position_type: # of coordinate types needed in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements). More... | |
virtual | ~Node () |
Destructor: Clean up the memory allocated for nodal position. More... | |
Node (const Node &node)=delete | |
Broken copy constructor. More... | |
void | operator= (const Node &)=delete |
Broken assignment operator. More... | |
unsigned | nposition_type () const |
Number of coordinate types needed in the mapping between local and global coordinates. More... | |
TimeStepper *& | position_time_stepper_pt () |
Return a pointer to the position timestepper. More... | |
TimeStepper *const & | position_time_stepper_pt () const |
Return a pointer to the position timestepper (const version). More... | |
unsigned | ndim () const |
Return (Eulerian) spatial dimension of the node. More... | |
double & | x (const unsigned &i) |
Return the i-th nodal coordinate. More... | |
const double & | x (const unsigned &i) const |
Return the i-th nodal coordinate (const version). More... | |
double & | x (const unsigned &t, const unsigned &i) |
Return the position x(i) at previous timestep t (t=0: present; t>0 previous timestep). More... | |
const double & | x (const unsigned &t, const unsigned &i) const |
Return the position x(i) at previous timestep t (t=0: present; t>0 previous timestep) (const version) More... | |
double | dx_dt (const unsigned &i) const |
Return the i-th component of nodal velocity: dx/dt. More... | |
double | dx_dt (const unsigned &j, const unsigned &i) const |
Return the i-th component of j-th derivative of nodal position: d^jx/dt^j. More... | |
virtual Node * | copied_node_pt () const |
Return pointer to copied node (null if the current node is not a copy – always the case here; it's overloaded for boundary nodes) More... | |
double & | x_gen (const unsigned &k, const unsigned &i) |
Reference to the generalised position x(k,i). ‘Type’: k; Coordinate direction: i. More... | |
const double & | x_gen (const unsigned &k, const unsigned &i) const |
Reference to the generalised position x(k,i). ‘Type’: k; Coordinate direction: i (const version). More... | |
double & | x_gen (const unsigned &t, const unsigned &k, const unsigned &i) |
Reference to the generalised position x(k,i) at the previous timestep [t=0: present]. ‘Type’: k; Coordinate direction: i. More... | |
const double & | x_gen (const unsigned &t, const unsigned &k, const unsigned &i) const |
Reference to the generalised position x(k,i) at the previous timestep [t=0: present]. ‘Type’: k; Coordinate direction: i. (const version) More... | |
double | dx_gen_dt (const unsigned &k, const unsigned &i) const |
i-th component of time derivative (velocity) of the generalised position, dx(k,i)/dt. ‘Type’: k; Coordinate direction: i. More... | |
double | dx_gen_dt (const unsigned &j, const unsigned &k, const unsigned &i) const |
i-th component of j-th time derivative (velocity) of the generalised position, d^jx(k,i)/dt^j. ‘Type’: k; Coordinate direction: i. More... | |
double * | x_pt (const unsigned &t, const unsigned &i) |
Direct access to the i-th coordinate at time level t (t=0: present; t>0: previous) More... | |
void | copy (Node *orig_node_pt) |
Copy all nodal data from specified Node object. More... | |
void | read (std::ifstream &restart_file) |
Read nodal position and associated data from file for restart. More... | |
unsigned | hang_code () |
Code that encapsulates the hanging status of the node (incl. the geometric hanging status) as . More... | |
HangInfo *const & | hanging_pt () const |
Return pointer to hanging node data (this refers to the geometric hanging node status) (const version). More... | |
HangInfo *const & | hanging_pt (const int &i) const |
Return pointer to hanging node data for value i (const version) More... | |
bool | is_hanging () const |
Test whether the node is geometrically hanging. More... | |
bool | is_hanging (const int &i) const |
Test whether the i-th value is hanging. More... | |
void | set_hanging_pt (HangInfo *const &hang_pt, const int &i) |
Set the hanging data for the i-th value. (hang_pt=0 to make non-hanging) More... | |
void | set_nonhanging () |
Label node as non-hanging node by removing all hanging node data. More... | |
void | resize (const unsigned &n_value) |
Resize the number of equations. More... | |
virtual void | make_periodic (Node *const &node_pt) |
Make the node periodic by copying the values from node_pt. Note that the coordinates will always remain independent, even though this may lead to (a little) unrequired information being stored. Broken virtual (only implemented in BoundaryNodes) More... | |
virtual void | make_periodic_nodes (const Vector< Node * > &periodic_nodes_pt) |
Make the nodes passed in the vector periodic_nodes share the same data as this node. More... | |
virtual void | get_boundaries_pt (std::set< unsigned > *&boundaries_pt) |
Return a pointer to set of mesh boundaries that this node occupies; this will be overloaded by BoundaryNodes. The default behaviour is that the Node does not lie on any boundaries so the pointer to the set of boundaries is NULL. More... | |
virtual bool | is_on_boundary () const |
Test whether the Node lies on a boundary. The "bulk" Node cannot lie on a boundary, so return false. This will be overloaded by BoundaryNodes. More... | |
virtual bool | is_on_boundary (const unsigned &b) const |
Test whether the node lies on mesh boundary b. The "bulk" Node cannot lie on a boundary, so return false. This will be overloaded by BoundaryNodes. More... | |
virtual void | add_to_boundary (const unsigned &b) |
Broken interface for adding the node to the mesh boundary b Essentially here for error reporting. More... | |
virtual void | remove_from_boundary (const unsigned &b) |
Broken interface for removing the node from the mesh boundary b Here to provide error reporting. More... | |
virtual unsigned | ncoordinates_on_boundary (const unsigned &b) |
Get the number of boundary coordinates on mesh boundary b. Broken virtual interface provides run-time error checking. More... | |
virtual bool | boundary_coordinates_have_been_set_up () |
Have boundary coordinates been set up? Broken virtual interface provides run-time error checking. More... | |
virtual void | get_coordinates_on_boundary (const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta) |
Return the vector of the k-th generalised boundary coordinates on mesh boundary b. Broken virtual interface provides run-time error checking. More... | |
virtual void | set_coordinates_on_boundary (const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta) |
Set the vector of the k-th generalised boundary coordinates on mesh boundary b. Broken virtual interface provides run-time error checking. More... | |
virtual void | get_coordinates_on_boundary (const unsigned &b, Vector< double > &boundary_zeta) |
Return the vector of coordinates on mesh boundary b Broken virtual interface provides run-time error checking. More... | |
virtual void | set_coordinates_on_boundary (const unsigned &b, const Vector< double > &boundary_zeta) |
Set the vector of coordinates on mesh boundary b Broken virtual interface provides run-time error checking. More... | |
void | set_obsolete () |
Mark node as obsolete. More... | |
void | set_non_obsolete () |
Mark node as non-obsolete. More... | |
bool | is_obsolete () |
Test whether node is obsolete. More... | |
double | raw_value (const unsigned &i) const |
Return the i-th value stored at the Node. This interface does NOT take the hanging status of the Node into account. More... | |
double | raw_value (const unsigned &t, const unsigned &i) const |
Return the i-th value at time level t (t=0: present, t>0: previous). This interface does NOT take the hanging status of the Node into account. More... | |
double | value (const unsigned &i) const |
Return i-th value (dofs or pinned) at this node either directly or via hanging node representation. Note that this REDFINES the interface in Data Thus, the present function will be called provided that it is accessed through a pointer to a node i.e. Node* node_pt->value() will take hanging information into account. If a pointer to a Node has been explicitly down-cast to a pointer to Data then the "wrong" (Data) version of the function will be called. More... | |
double | value (const unsigned &t, const unsigned &i) const |
Return i-th value at time level t (t=0: present, t>0: previous) either directly or via hanging node representation. Note that this REDEFINES the interface in Data Thus, the present function will be called provided that it is accessed through a pointer to a node i.e. Node* node_pt->value() will take hanging information into account. If a pointer to a Node has been explicitly down-cast to a pointer to Data then the "wrong" (Data) version of the function will be called. More... | |
void | value (Vector< double > &values) const |
Compute Vector of values for the Data value taking the hanging node status into account. Note that this REDEFINES the interface in Data Thus, the present function will be called provided that it is accessed through a pointer to a node i.e. Node* node_pt->value() will take hanging information into account. If a pointer to a Node has been explicitly down-cast to a pointer to Data then the "wrong" (Data) version of the function will be called. More... | |
Vector< double > | value () const |
Return vector of values calculated using value(vector). More... | |
void | value (const unsigned &t, Vector< double > &values) const |
Compute Vector of values (dofs or pinned) in this data at time level t (t=0: present; t>0: previous). This interface explicitly takes the hanging status into account. Thus, the present function will be called provided that it is accessed through a pointer to a node i.e. Node* node_pt->value() will take hanging information into account. If a pointer to a Node has been explicitly down-cast to a pointer to Data then the "wrong" (Data) version of the function will be called. More... | |
void | position (Vector< double > &pos) const |
Compute Vector of nodal positions either directly or via hanging node representation. More... | |
Vector< double > | position () const |
Return vector of position of node at current time. More... | |
void | position (const unsigned &t, Vector< double > &pos) const |
Compute Vector of nodal position at time level t (t=0: current; t>0: previous timestep), either directly or via hanging node representation. More... | |
double | position (const unsigned &i) const |
Return i-th nodal coordinate either directly or via hanging node representation. More... | |
double | position (const unsigned &t, const unsigned &i) const |
Return i-th nodal coordinate at time level t (t=0: current; t>0: previous time level), either directly or via hanging node representation. More... | |
double | position_gen (const unsigned &k, const unsigned &i) const |
Return generalised nodal coordinate either directly or via hanging node representation. More... | |
double | position_gen (const unsigned &t, const unsigned &k, const unsigned &i) const |
Return generalised nodal coordinate at time level t (t=0: current; t>0: previous time level), either directly or via hanging node representation. More... | |
double | dposition_dt (const unsigned &i) const |
Return the i-th component of nodal velocity: dx/dt, either directly or via hanging node representation. More... | |
double | dposition_dt (const unsigned &j, const unsigned &i) const |
Return the i-th component of j-th derivative of nodal position: d^jx/dt^j either directly or via hanging node representation. More... | |
double | dposition_gen_dt (const unsigned &k, const unsigned &i) const |
i-th component of time derivative (velocity) of the generalised position, dx(k,i)/dt. ‘Type’: k; Coordinate direction: i. This function uses the hanging node representation if necessary. More... | |
double | dposition_gen_dt (const unsigned &j, const unsigned &k, const unsigned &i) const |
i-th component of j-th time derivative (velocity) of the generalised position, d^jx(k,i)/dt^j. ‘Type’: k; Coordinate direction: i. This function uses the hanging node representation if necessary More... | |
void | set_auxiliary_node_update_fct_pt (AuxNodeUpdateFctPt aux_node_update_fct_pt) |
Set pointer to auxiliary update function – this can be used to update any nodal values following the update of the nodal position. This is needed e.g. to update the no-slip condition on moving boundaries. More... | |
bool | has_auxiliary_node_update_fct_pt () |
Boolean to indicate if node has a pointer to and auxiliary update function. More... | |
void | perform_auxiliary_node_update_fct () |
Execute auxiliary update function (if any) – this can be used to update any nodal values following the update of the nodal position. This is needed e.g. to update the no-slip condition on moving boundaries. More... | |
virtual unsigned | ngeom_data () const |
Return the number of geometric data that affect the nodal position. The default value is zero (node is stationary) More... | |
virtual Data ** | all_geom_data_pt () |
Return a pointer to an array of all (geometric) data that affect the nodal position. The default value is zero (node is stationary) More... | |
virtual unsigned | ngeom_object () const |
Return the number of geometric objects that affect the nodal position. The default value is zero (node is stationary) More... | |
virtual GeomObject ** | all_geom_object_pt () |
Return a pointer to an array of all (geometric) objects that affect the nodal position. The default value is zero (node is stationary) More... | |
void | output (std::ostream &outfile) |
Output nodal position. More... | |
Public Member Functions inherited from oomph::Data | |
virtual void | clear_copied_pointers () |
Helper function that should be overloaded derived classes that contain copies of data. The function must unset (NULL out) the internal pointers to the copied data. This is used when destructing data to ensure that all pointers remain valid. The default implementation throws an error because Data cannot be a copy. More... | |
Data () | |
Default: Just set pointer to (steady) timestepper. No storage for values is allocated. More... | |
Data (const unsigned &initial_n_value) | |
Default constructor for steady problems: assign memory for initial_n_value values. More... | |
Data (TimeStepper *const &time_stepper_pt, const unsigned &initial_n_value, const bool &allocate_storage=true) | |
Constructor for unsteady problems: assign memory for initial_n_value values and any memory required by the Timestepper for the storage of history values. More... | |
Data (const Data &data)=delete | |
Broken copy constructor. More... | |
void | operator= (const Data &)=delete |
Broken assignment operator. More... | |
virtual | ~Data () |
Destructor, deallocates memory assigned for data. More... | |
void | set_time_stepper (TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
Set a new timestepper by resizing the appropriate storage. If already assigned the equation numbering will not be altered. More... | |
TimeStepper *& | time_stepper_pt () |
Return the pointer to the timestepper. More... | |
TimeStepper *const & | time_stepper_pt () const |
Return the pointer to the timestepper (const version). More... | |
virtual bool | is_a_copy () const |
Return a boolean to indicate whether the Data objact contains any copied values. A base Data object can never be a copy so the default implementation always returns false. More... | |
virtual bool | is_a_copy (const unsigned &i) const |
Return flag to indicate whether the i-th value is a copy. A base Data object can never be a copy so the default implementation always returns false. More... | |
void | set_value (const unsigned &i, const double &value_) |
Set the i-th stored data value to specified value. The only reason that we require an explicit set function is because we redefine value() in the Node class to interpolate the values for nodes that are hanging and so we cannot return a reference to the value in this case. More... | |
void | set_value (const unsigned &t, const unsigned &i, const double &value_) |
Set the t-th history value of the i-th stored data value to specified value. More... | |
double | value (const unsigned &i) const |
Return i-th stored value. This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns the "raw" stored value. More... | |
double | value (const unsigned &t, const unsigned &i) const |
Return i-th value at time level t (t=0: present, t>0: previous) This function is not virtual so that it can be inlined. This means that if we have an explicit pointer to a Data object Data* data_pt->value() always returns to the "raw" stored value. More... | |
void | value (Vector< double > &values) const |
Compute Vector of values for the Data value. More... | |
void | value (const unsigned &t, Vector< double > &values) const |
Compute Vector of values (dofs or pinned) in this data at time level t (t=0: present; t>0: previous). More... | |
double * | value_pt (const unsigned &i) const |
Return the pointer to the i-the stored value. Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object. More... | |
double * | value_pt (const unsigned &t, const unsigned &i) const |
Return the pointer to the i-th stored value, or any of its history values (const version). Typically this is required when direct access to the stored value is required, e.g. when writing functions that return a reference to a variable that is stored in a Data object. More... | |
bool | does_pointer_correspond_to_value (double *const ¶meter_pt) |
Check whether the pointer parameter_pt addresses internal data values. More... | |
void | copy (Data *orig_data_pt) |
Copy Data values from specified Data object. More... | |
void | dump (std::ostream &dump_file) const |
Dump the data object to a file. More... | |
void | read (std::ifstream &restart_file) |
Read data object from a file. More... | |
long * | eqn_number_pt (const unsigned &i) |
Return the pointer to the equation number of the i-th stored variable. More... | |
long & | eqn_number (const unsigned &i) |
Return the equation number of the i-th stored variable. More... | |
long | eqn_number (const unsigned &i) const |
Return the equation number of the i-th stored variable. More... | |
void | pin (const unsigned &i) |
Pin the i-th stored variable. More... | |
void | unpin (const unsigned &i) |
Unpin the i-th stored variable. More... | |
void | pin_all () |
Pin all the stored variables. More... | |
void | unpin_all () |
Unpin all the stored variables. More... | |
bool | is_pinned (const unsigned &i) const |
Test whether the i-th variable is pinned (1: true; 0: false). More... | |
bool | is_segregated_solve_pinned (const unsigned &i) |
Test whether the i-th variable is temporaily pinned for a segregated solve. More... | |
void | constrain (const unsigned &i) |
Constrain the i-th stored variable when making hanging data If the data is already pinned leave it along, otherwise mark as constrained (hanging) More... | |
void | unconstrain (const unsigned &i) |
Unconstrain the i-th stored variable when make the data nonhanging. Only unconstrain if it was actually constrained (hanging) More... | |
void | constrain_all () |
Constrain all the stored variables when the data is made hanging. More... | |
void | unconstrain_all () |
Unconstrain all the stored variables when the data is made nonhanging. More... | |
bool | is_constrained (const unsigned &i) |
Test whether the i-th variable is constrained (1: true; 0: false). More... | |
unsigned | self_test () |
Self-test: Have all values been classified as pinned/unpinned? Return 0 if OK. More... | |
unsigned | nvalue () const |
Return number of values stored in data object (incl pinned ones). More... | |
unsigned | ntstorage () const |
Return total number of doubles stored per value to record time history of each value (one for steady problems). More... | |
void | set_halo (const unsigned &non_halo_proc_ID) |
Label the node as halo and specify processor that holds non-halo counterpart. More... | |
void | set_nonhalo () |
Label the node as not being a halo. More... | |
bool | is_halo () const |
Is this Data a halo? More... | |
int | non_halo_proc_ID () |
ID of processor ID that holds non-halo counterpart of halo node; negative if not a halo. More... | |
Protected Attributes | |
unsigned | Nlagrangian |
Number of Lagrangian coordinates of the node. More... | |
unsigned | Nlagrangian_type |
Number of types of Lagrangian coordinates used to interpolate the Lagrangian coordinates within the element. More... | |
Data * | Variable_position_pt |
Pointer to data that will hold variable positions in elastic nodes. More... | |
double * | Xi_position |
Storage for the Lagrangian positions. More... | |
Protected Attributes inherited from oomph::Node | |
double ** | X_position |
Array of pointers to the data holding the Eulerian positions. The storage format must be the same as the internal data storage so that we can implement the functions x() in generality here without the need for virtual functions. The first index will be a flat array of position types and coordinates and the second will be the number of time history values at each position type. More... | |
TimeStepper * | Position_time_stepper_pt |
Pointer to the timestepper associated with the position data. More... | |
HangInfo ** | Hanging_pt |
C-style array of pointers to hanging node info. It's set to NULL if the node isn't hanging. The first entry (0) is the geometric hanging node data. The remaining entries correspond to the hanging data for the other values stored at the node. Usually, these entries will be the same as the geometric hanging node data represented by Hanging_pt[0], but this is not necessarily the case; e.g. the pressure in Taylor Hood has different hanging node data from the velocities. More... | |
unsigned | Ndim |
Eulerian dimension of the node. More... | |
unsigned | Nposition_type |
Number of coordinate types used in the mapping between local and global coordinates (e.g. 1 for Lagrange-type elements; 2 for 1D Hermite elements; 4 for 2D Hermite elements, etc). More... | |
bool | Obsolete |
Flag to indicate that the Node has become obsolete — usually during mesh refinement process. More... | |
AuxNodeUpdateFctPt | Aux_node_update_fct_pt |
Pointer to auxiliary update function – this can be used to update any nodal values following the update of the nodal position. This is needed e.g. to update the no-slip condition on moving boundaries. More... | |
Protected Attributes inherited from oomph::Data | |
Data ** | Copy_of_data_pt |
C-style array of any Data objects that contain copies of the current Data object's data values. More... | |
unsigned | Ncopies |
Number of Data that contain copies of this Data object's values. More... | |
Private Member Functions | |
void | xi_gen_range_check (const unsigned &k, const unsigned &i) const |
Private function to check that the arguments to the position functions are in range. More... | |
Additional Inherited Members | |
Public Types inherited from oomph::Node | |
typedef void(* | AuxNodeUpdateFctPt) (Node *) |
Function pointer to auxiliary node update function. More... | |
Static Public Attributes inherited from oomph::Node | |
static unsigned | No_independent_position = 10 |
Static "Magic number" used to indicate that there is no independent position in a periodic node. More... | |
Static Public Attributes inherited from oomph::Data | |
static long | Is_pinned = -1 |
Static "Magic number" used in place of the equation number to indicate that the value is pinned. More... | |
static long | Is_segregated_solve_pinned = -3 |
Static "Magic number" used in place of the equation number to indicate that the value is pinned, but only for the duration of a segregated solve. More... | |
static long | Is_unclassified = -10 |
Static "Magic number" used in place of the equation number to denote a value that hasn't been classified as pinned or free. More... | |
static long | Is_constrained = -2 |
Static "Magic number" used in place of the equation number to indicate that the value is constrained because it is associated with non-conforming element boundaries — a hanging node — (and is therefore pinned) More... | |
Protected Member Functions inherited from oomph::Node | |
void | x_gen_range_check (const unsigned &t, const unsigned &k, const unsigned &i) const |
Private function to check that the arguemnts to the position functions are in range. More... | |
double * | x_position_pt (const unsigned &i) |
Direct access to the pointer to the i-th stored coordinate data. More... | |
Protected Member Functions inherited from oomph::Data | |
virtual void | reset_copied_pointers () |
Helper function that should be overloaded in derived classes that can contain copies of Data. The function must reset the internal pointers to the copied data. This is used when resizing data to ensure that all the pointers remain valid. The default implementation throws an error beacause Data cannot be a copy. More... | |
Static Protected Attributes inherited from oomph::Data | |
static TimeStepper * | Default_static_time_stepper_pt = new Steady<0>() |
Default (static) timestepper used in steady problems. More... | |
A Class for nodes that deform elastically (i.e. position is an unknown in the problem). The idea is that the Eulerian positions are stored in a Data object and the Lagrangian coordinates are stored in addition. The pointer that addresses the Eulerian positions is set to the pointer to Value in the Data object. Hence, SolidNode uses knowledge of the internal structure of Data and must be a friend of the Data class. In order to allow a mesh to deform via an elastic-style equation in deforming-domain problems, the positions are stored separately from the values, so that elastic problems may be combined with any other type of problem.
|
inline |
oomph::SolidNode::SolidNode | ( | const unsigned & | n_lagrangian, |
const unsigned & | n_lagrangian_type, | ||
const unsigned & | n_dim, | ||
const unsigned & | n_position_type, | ||
const unsigned & | initial_n_value | ||
) |
Steady constructor. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.). The Eulerian dimension of the Node is n_dim and we have n_position_type (generalised) Eulerian coordinates. There are initial_n_value values stored at this node.
Steady constructor. The node has NLgrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.). The Eulerian dimension of the Node is n_dim and we have n_position_type (generalised) Eulerian coordinates. There are initial_n_value values stored at this node and NAdditional_solid additional values associated with the solid equations are stored in a separate Data object at the node.
Definition at line 3348 of file nodes.cc.
References oomph::Data::Data(), oomph::Node::Ndim, oomph::Node::Nposition_type, oomph::Data::Value, Variable_position_pt, oomph::Node::X_position, and Xi_position.
oomph::SolidNode::SolidNode | ( | TimeStepper *const & | time_stepper_pt, |
const unsigned & | n_lagrangian, | ||
const unsigned & | n_lagrangian_type, | ||
const unsigned & | n_dim, | ||
const unsigned & | Nposition_type, | ||
const unsigned & | initial_n_value | ||
) |
Unsteady constructor. Allocates storage for initial_n_value nodal values with history values as required by timestepper. The node has n_lagrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.)/ The Eulerian dimension of the Node is n_dim and we have n_position_type generalised Eulerian coordinates.
Unsteady constructor. Allocates storage for initial_n_value nodal values with history values as required by timestepper. The node has NLgrangian Lagrangian coordinates of n_lagrangian_type types (1 for Lagrange elements, 2 for 1D Hermite etc.)/ The Eulerian dimension of the Node is n_dim and we have n_position_type generalised Eulerian coordinates.
Definition at line 3384 of file nodes.cc.
References oomph::Data::Data(), oomph::Data::Value, Variable_position_pt, oomph::Node::X_position, and Xi_position.
|
virtual |
Destructor that cleans up the additional memory allocated in SolidNodes.
Destructor to clean up the memory allocated for nodal positions and additional solid variables.
Definition at line 3416 of file nodes.cc.
References Variable_position_pt, oomph::Node::X_position, and Xi_position.
|
delete |
Broken copy constructor.
|
virtual |
Add all equation numbers to the vector in the internal storage order. Overload to add equation numbers associated with the positional dofs.
Add equations numbers associated with the node position to the vector after the standard nodal equation numbers.
Reimplemented from oomph::Data.
Definition at line 3799 of file nodes.cc.
References oomph::Data::add_eqn_numbers_to_vector(), and Variable_position_pt.
|
virtual |
Overload the function add_values_to_map so that it also adds the variable position data.
Add pointers to all data values (including position data) to a map.
Reimplemented from oomph::Data.
Definition at line 3693 of file nodes.cc.
References oomph::Data::add_value_pt_to_map(), and Variable_position_pt.
|
virtual |
Add all data, position and time history values to the vector Overload to add the Lagrangian coordinates to the vector.
Add Lagrangian coordinates to the vector after positional data and "standard" data.
Reimplemented from oomph::Node.
Definition at line 3708 of file nodes.cc.
References oomph::Node::add_values_to_vector(), i, nlagrangian(), nlagrangian_type(), and Xi_position.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper().
|
virtual |
Overload the assign equation numbers routine.
Assign (global) equation number, for SolidNodes.
Reimplemented from oomph::Node.
Definition at line 3652 of file nodes.cc.
References oomph::Data::assign_eqn_numbers(), and Variable_position_pt.
|
inlinevirtual |
Overload the constrain positions function to constrain all position values.
Reimplemented from oomph::Node.
Definition at line 1857 of file nodes.h.
References oomph::Data::constrain_all(), and Variable_position_pt.
void oomph::SolidNode::copy | ( | SolidNode * | orig_node_pt | ) |
Copy nodal positions and associated data from specified node object.
Definition at line 3433 of file nodes.cc.
References oomph::Data::copy(), Nlagrangian, nlagrangian(), Nlagrangian_type, nlagrangian_type(), Variable_position_pt, variable_position_pt(), and Xi_position.
Referenced by oomph::Mesh::convert_to_boundary_node(), and oomph::Problem::copy().
|
virtual |
Function to describe the dofs of the Node. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...)
Function to describe the dofs of the SolidNode. The ostream specifies the output stream to which the description is written; the string stores the currently assembled output that is ultimately written to the output stream by Data::describe_dofs(...); it is typically built up incrementally as we descend through the call hierarchy of this function when called from Problem::describe_dofs(...)
Reimplemented from oomph::Data.
Definition at line 3671 of file nodes.cc.
References oomph::Data::describe_dofs(), oomph::Global_string_for_annotation::string(), and Variable_position_pt.
Referenced by oomph::SolidFiniteElement::describe_solid_local_dofs().
|
virtual |
Overload the check whether the pointer parameter_pt addresses position data values.
Check whether the pointer parameter_pt refers to positional data.
Reimplemented from oomph::Node.
Definition at line 3573 of file nodes.cc.
References oomph::Data::does_pointer_correspond_to_value(), and Variable_position_pt.
|
virtual |
Dump nodal positions (variable and fixed) and associated data to file for restart.
Dump nodal positions and associated data to file for restart.
Reimplemented from oomph::Node.
Definition at line 3470 of file nodes.cc.
References oomph::Node::dump(), Nlagrangian, Nlagrangian_type, and Xi_position.
double oomph::SolidNode::lagrangian_position | ( | const unsigned & | i | ) | const |
Return lagrangian coordinate either directly or via hanging node representation.
Definition at line 3586 of file nodes.cc.
References oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::master_weight(), oomph::HangInfo::nmaster(), and xi().
Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::Mesh::delete_all_external_storage(), and oomph::TreeBasedRefineableMeshBase::p_adapt_mesh().
double oomph::SolidNode::lagrangian_position_gen | ( | const unsigned & | k, |
const unsigned & | i | ||
) | const |
Return generalised lagrangian coordinate either directly or via hanging node representation.
Definition at line 3619 of file nodes.cc.
References oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::master_weight(), oomph::HangInfo::nmaster(), and xi_gen().
|
inline |
Return number of lagrangian coordinates.
Definition at line 1870 of file nodes.h.
References Nlagrangian.
Referenced by oomph::TreeBasedRefineableMeshBase::adapt_mesh(), add_values_to_vector(), oomph::SolidQHermiteElement< DIM >::build_face_element(), oomph::SolidQElement< 1, NNODE_1D >::build_face_element(), oomph::SolidQElement< 2, NNODE_1D >::build_face_element(), oomph::SolidQElement< 3, NNODE_1D >::build_face_element(), oomph::SolidTBubbleEnrichedElement< DIM, NNODE_1D >::build_face_element(), oomph::SolidTElement< 1, NNODE_1D >::build_face_element(), oomph::SolidTElement< 2, NNODE_1D >::build_face_element(), oomph::SolidTElement< 3, NNODE_1D >::build_face_element(), copy(), oomph::Mesh::delete_all_external_storage(), oomph::DummyErrorEstimator::DummyErrorEstimator(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), oomph::TreeBasedRefineableMeshBase::p_adapt_mesh(), read_values_from_vector(), and oomph::SolidMesh::set_lagrangian_nodal_coordinates().
|
inline |
Number of types of Lagrangian coordinates used to interpolate the Lagrangian coordinates within the element.
Definition at line 1877 of file nodes.h.
References Nlagrangian_type.
Referenced by add_values_to_vector(), oomph::RefineableSolidQElement< 3 >::build(), oomph::RefineableSolidQElement< 2 >::build(), copy(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::project(), read_values_from_vector(), and oomph::SolidMesh::set_lagrangian_nodal_coordinates().
|
inlinevirtual |
Overload node update function: Since the position of SolidNodes is determined by unknowns, there's nothing to be done apart from performing the auxiliary node update function (if any)
Reimplemented from oomph::Node.
Definition at line 1981 of file nodes.h.
References oomph::Node::perform_auxiliary_node_update_fct().
|
delete |
Broken assignment operator.
|
inlinevirtual |
Pin all the stored variables (Overloaded)
Reimplemented from oomph::Node.
Definition at line 1842 of file nodes.h.
References oomph::Data::pin_all(), oomph::Node::pin_all(), and Variable_position_pt.
|
inline |
Pin the nodal position.
Definition at line 1816 of file nodes.h.
References i, oomph::Node::Nposition_type, oomph::Data::pin(), and Variable_position_pt.
Referenced by oomph::RefineableQElement< 3 >::build(), oomph::RefineableQElement< 2 >::build(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::p_refine(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::p_refine(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::pin_all(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::pin_dofs_of_coordinate(), oomph::PRefineableQElement< 2, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::PRefineableQElement< 3, INITIAL_NNODE_1D >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 3 >::rebuild_from_sons(), oomph::RefineableQSpectralElement< 2 >::rebuild_from_sons(), and oomph::SolidICProblem::reset_original_state().
|
inline |
Pin the generalised nodal position. ‘Type’: k; Coordinate direction: i.
Definition at line 1823 of file nodes.h.
References i, oomph::Node::Nposition_type, oomph::Data::pin(), and Variable_position_pt.
|
inline |
Return the equation number for generalised Eulerian coordinate: type of coordinate: k, coordinate direction: i.
Definition at line 1797 of file nodes.h.
References oomph::Data::eqn_number(), i, oomph::Node::Nposition_type, and Variable_position_pt.
Referenced by oomph::SolidFiniteElement::assign_solid_local_eqn_numbers().
|
inlinevirtual |
Return whether any position component has been copied.
Reimplemented from oomph::Node.
Definition at line 1784 of file nodes.h.
References oomph::Data::is_a_copy(), and Variable_position_pt.
|
inlinevirtual |
Return whether the position coordinate i has been copied.
Reimplemented from oomph::Node.
Definition at line 1790 of file nodes.h.
References i, oomph::Data::is_a_copy(), oomph::Node::Nposition_type, and Variable_position_pt.
|
inline |
Test whether the i-th coordinate is pinned, 0: false; 1: true.
Definition at line 1803 of file nodes.h.
References i, oomph::Data::is_pinned(), oomph::Node::Nposition_type, and Variable_position_pt.
Referenced by oomph::SolidICProblem::backup_original_state(), oomph::RefineableSolidQElement< 2 >::get_edge_solid_bcs(), oomph::RefineableSolidQElement< 3 >::get_face_solid_bcs(), and oomph::Problem::set_pinned_values_to_zero().
|
inline |
Test whether the k-th type of the i-th coordinate is pinned 0: false; 1: true.
Definition at line 1810 of file nodes.h.
References i, oomph::Data::is_pinned(), oomph::Node::Nposition_type, and Variable_position_pt.
void oomph::SolidNode::read | ( | std::ifstream & | restart_file | ) |
Read nodal positions (variable and fixed) and associated data from file for restart.
Read nodal positions and associated data to file for restart.
Definition at line 3490 of file nodes.cc.
References Nlagrangian, Nlagrangian_type, oomph::Node::read(), oomph::Global_string_for_annotation::string(), and Xi_position.
Referenced by oomph::Mesh::read().
|
virtual |
Read all equation numbers from the vector starting from index. On return the index will be set to the value at the end of the data that has been read in Overload to include the equation numbrs associated with the positional dofs.
Read the equation numbers associated with the node position from the vector after reading in the standard nodal equaiton numbers.
Reimplemented from oomph::Data.
Definition at line 3811 of file nodes.cc.
References oomph::Data::read_eqn_numbers_from_vector(), and Variable_position_pt.
|
virtual |
Read all data and time history values from the vector starting from index. On return the index will be set the value at the end of the data that has been read in Overload to add the position information and Lagrangian coordinates.
Read the lagrangian coordinates in from the vector after reading in the positional and "standard" data.
Reimplemented from oomph::Node.
Definition at line 3755 of file nodes.cc.
References i, nlagrangian(), nlagrangian_type(), oomph::Node::read_values_from_vector(), and Xi_position.
Referenced by oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), and oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper().
void oomph::SolidNode::set_external_variable_position_pt | ( | Data *const & | data_pt | ) |
Set the variable position data from an external data object.
Set the variable position data from an external source. This is mainly used when setting periodic solid problems.
Definition at line 3532 of file nodes.cc.
References oomph::Data::CopiedData, oomph::Data::Value, Variable_position_pt, and oomph::Node::X_position.
|
virtual |
Set a new position timestepper be resizing the appropriate storage Overloaded from the basic implementation to take into account the fact that position is now Data.
Set a new position TimeStepper be resizing the appropriate storage. The current (zero) values will be unaffected, but all other entries will be set to zero.
Reimplemented from oomph::Node.
Definition at line 3548 of file nodes.cc.
References oomph::Node::Position_time_stepper_pt, oomph::Node::position_time_stepper_pt(), oomph::Data::set_time_stepper(), oomph::Data::Value, Variable_position_pt, and oomph::Node::X_position.
|
inlinevirtual |
Overload the unconstrain positions function to unconstrain all position values.
Reimplemented from oomph::Node.
Definition at line 1864 of file nodes.h.
References oomph::Data::unconstrain_all(), and Variable_position_pt.
|
inlinevirtual |
Unpin all the stored variables (Overloaded)
Reimplemented from oomph::Node.
Definition at line 1849 of file nodes.h.
References oomph::Data::unpin_all(), oomph::Node::unpin_all(), and Variable_position_pt.
|
inline |
Unpin the nodal position.
Definition at line 1829 of file nodes.h.
References i, oomph::Node::Nposition_type, oomph::Data::unpin(), and Variable_position_pt.
Referenced by oomph::SolidICProblem::setup_problem(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::unpin_all(), and oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::unpin_dofs_of_coordinate().
|
inline |
Unpin the generalised nodal position. ‘Type’: k; Coordinate direction: i.
Definition at line 1836 of file nodes.h.
References i, oomph::Node::Nposition_type, oomph::Data::unpin(), and Variable_position_pt.
|
inline |
Return the variable_position data (const version)
Definition at line 1759 of file nodes.h.
References Variable_position_pt.
|
inline |
Pointer to variable_position data (const version)
Definition at line 1765 of file nodes.h.
References Variable_position_pt.
Referenced by oomph::PeriodicOrbitAssemblyHandler< NNODE_1D >::adapt_temporal_mesh(), oomph::BoundaryNode< NODE_TYPE >::assign_eqn_numbers(), oomph::ElementWithExternalElement::assign_external_interaction_data_local_eqn_numbers(), oomph::GeneralisedElement::assign_local_eqn_numbers(), oomph::Mesh::classify_halo_and_haloed_nodes(), oomph::Multi_domain_functions::construct_new_external_halo_master_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_master_node_helper(), oomph::Multi_domain_functions::construct_new_external_halo_node_helper(), oomph::Missing_masters_functions::construct_new_external_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_halo_node_helper(), oomph::RefineableTriangleMesh< ELEMENT >::construct_new_node_load_balance_helper(), copy(), oomph::DisplacementControlElement::DisplacementControlElement(), oomph::FSI_functions::doc_fsi(), oomph::Missing_masters_functions::get_required_master_nodal_information_helper(), oomph::Multi_domain_functions::get_required_master_nodal_information_helper(), oomph::Missing_masters_functions::get_required_nodal_information_helper(), oomph::Multi_domain_functions::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_helper(), oomph::RefineableTriangleMesh< ELEMENT >::get_required_nodal_information_load_balance_helper(), oomph::Hijacked< ELEMENT >::hijack_nodal_position_value(), oomph::GeneralisedNewtonianNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::NavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::SpaceTimeNavierStokesEquations< DIM >::pin_all_non_pressure_dofs(), oomph::SpaceTimeNavierStokesMixedOrderEquations< DIM >::pin_all_non_pressure_dofs(), oomph::Problem::remove_duplicate_data(), oomph::NavierStokesSchurComplementPreconditioner::reset_pin_status(), and oomph::Problem::synchronise_eqn_numbers().
|
inline |
Reference to i-th Lagrangian position.
Definition at line 1883 of file nodes.h.
References i, Nlagrangian_type, xi_gen_range_check(), and Xi_position.
Referenced by oomph::NonLinearElasticitySmoothMesh< ELEMENT >::actions_before_newton_solve(), oomph::TreeBasedRefineableMeshBase::adapt_mesh(), oomph::RefineableSolidQElement< 3 >::build(), oomph::RefineableSolidQElement< 2 >::build(), oomph::CircularCylindricalShellMesh< ELEMENT >::build_mesh(), oomph::Mesh::delete_all_external_storage(), oomph::DummyErrorEstimator::DummyErrorEstimator(), oomph::ElasticRefineableRectangularQuadMesh< ELEMENT >::ElasticRefineableRectangularQuadMesh(), oomph::DummyErrorEstimator::get_element_errors(), lagrangian_position(), oomph::LinearElasticitySmoothMesh< LINEAR_ELASTICITY_ELEMENT >::operator()(), oomph::PoissonSmoothMesh< POISSON_ELEMENT >::operator()(), and oomph::TreeBasedRefineableMeshBase::p_adapt_mesh().
|
inline |
Reference to i-th Lagrangian position (const version)
Definition at line 1892 of file nodes.h.
References i, Nlagrangian_type, xi_gen_range_check(), and Xi_position.
|
inline |
Reference to the generalised Lagrangian position. ‘Type’: k; 'Coordinate direction: i.
Definition at line 1902 of file nodes.h.
References i, Nlagrangian_type, xi_gen_range_check(), and Xi_position.
Referenced by oomph::CircularCylindricalShellMesh< ELEMENT >::build_mesh(), lagrangian_position_gen(), oomph::ProjectionProblem< PROJECTABLE_ELEMENT >::project(), and oomph::SolidMesh::set_lagrangian_nodal_coordinates().
|
inline |
Reference to the generalised Lagrangian position. ‘Type’: k; 'Coordinate direction: i. (const version.
Definition at line 1912 of file nodes.h.
References i, Nlagrangian_type, xi_gen_range_check(), and Xi_position.
|
private |
Private function to check that the arguments to the position functions are in range.
////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////// Private function to check that the argument is within the range of stored Lagrangain coordinates and position types.
Definition at line 3312 of file nodes.cc.
References i, Nlagrangian, and Nlagrangian_type.
|
protected |
Number of Lagrangian coordinates of the node.
Definition at line 1694 of file nodes.h.
Referenced by copy(), dump(), nlagrangian(), read(), and xi_gen_range_check().
|
protected |
Number of types of Lagrangian coordinates used to interpolate the Lagrangian coordinates within the element.
Definition at line 1698 of file nodes.h.
Referenced by copy(), dump(), nlagrangian_type(), read(), xi(), xi_gen(), and xi_gen_range_check().
|
protected |
Pointer to data that will hold variable positions in elastic nodes.
Definition at line 1701 of file nodes.h.
Referenced by add_eqn_numbers_to_vector(), add_value_pt_to_map(), assign_eqn_numbers(), constrain_positions(), copy(), describe_dofs(), does_pointer_correspond_to_position_data(), pin_all(), pin_position(), position_eqn_number(), position_is_a_copy(), position_is_pinned(), read_eqn_numbers_from_vector(), set_external_variable_position_pt(), set_position_time_stepper(), SolidNode(), unconstrain_positions(), unpin_all(), unpin_position(), variable_position(), variable_position_pt(), and ~SolidNode().
|
protected |
Storage for the Lagrangian positions.
Definition at line 1704 of file nodes.h.
Referenced by add_values_to_vector(), copy(), dump(), read(), read_values_from_vector(), SolidNode(), xi(), xi_gen(), and ~SolidNode().