![]() |
|
#include <macro_element_node_update_element.h>
Public Member Functions | |
MacroElementNodeUpdateNode (const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_nvalue) | |
MacroElementNodeUpdateNode (TimeStepper *time_stepper_pt, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_nvalue) | |
MacroElementNodeUpdateNode (const MacroElementNodeUpdateNode &)=delete | |
Broken copy constructor. More... | |
virtual | ~MacroElementNodeUpdateNode () |
Broken assignment operator. More... | |
void | node_update (const bool &update_all_time_levels_for_new_node=false) |
FiniteElement *& | node_update_element_pt () |
Vector< double > & | s_in_node_update_element () |
unsigned | ngeom_object () const |
Number of geometric objects involved in node update function. More... | |
Vector< GeomObject * > & | geom_object_pt () |
GeomObject * | geom_object_pt (const unsigned &i) |
Vector< GeomObject * > & | vector_geom_object_pt () |
GeomObject ** | all_geom_object_pt () |
Return all geometric objects that affect the node update. More... | |
void | set_node_update_info (FiniteElement *node_update_element_pt, const Vector< double > &s_in_node_update_element, const Vector< GeomObject * > &geom_object_pt) |
![]() | |
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) | |
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) | |
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 |
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... | |
virtual void | set_position_time_stepper (TimeStepper *const &position_time_stepper_pt, const bool &preserve_existing_data) |
virtual bool | does_pointer_correspond_to_position_data (double *const ¶meter_pt) |
virtual void | assign_eqn_numbers (unsigned long &global_ndof, Vector< double * > &dof_pt) |
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) |
const double & | x (const unsigned &t, const unsigned &i) const |
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 |
virtual Node * | copied_node_pt () const |
virtual bool | position_is_a_copy () const |
Return whether any position coordinate has been copied (always false) More... | |
virtual bool | position_is_a_copy (const unsigned &i) const |
Return whether the position coordinate i has been copied (always false) More... | |
double & | x_gen (const unsigned &k, const unsigned &i) |
const double & | x_gen (const unsigned &k, const unsigned &i) const |
double & | x_gen (const unsigned &t, const unsigned &k, const unsigned &i) |
const double & | x_gen (const unsigned &t, const unsigned &k, const unsigned &i) const |
double | dx_gen_dt (const unsigned &k, const unsigned &i) const |
double | dx_gen_dt (const unsigned &j, const unsigned &k, const unsigned &i) const |
double * | x_pt (const unsigned &t, const unsigned &i) |
void | copy (Node *orig_node_pt) |
Copy all nodal data from specified Node object. More... | |
virtual void | dump (std::ostream &dump_file) const |
Dump nodal position and associated data to file for restart. More... | |
void | read (std::ifstream &restart_file) |
Read nodal position and associated data from file for restart. More... | |
virtual void | pin_all () |
virtual void | unpin_all () |
unsigned | hang_code () |
HangInfo *const & | hanging_pt () const |
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 | constrain_positions () |
virtual void | unconstrain_positions () |
virtual void | make_periodic (Node *const &node_pt) |
virtual void | make_periodic_nodes (const Vector< Node * > &periodic_nodes_pt) |
virtual void | get_boundaries_pt (std::set< unsigned > *&boundaries_pt) |
virtual bool | is_on_boundary () const |
virtual bool | is_on_boundary (const unsigned &b) const |
virtual void | add_to_boundary (const unsigned &b) |
virtual void | remove_from_boundary (const unsigned &b) |
virtual unsigned | ncoordinates_on_boundary (const unsigned &b) |
virtual bool | boundary_coordinates_have_been_set_up () |
virtual void | get_coordinates_on_boundary (const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta) |
virtual void | set_coordinates_on_boundary (const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta) |
virtual void | get_coordinates_on_boundary (const unsigned &b, Vector< double > &boundary_zeta) |
virtual void | set_coordinates_on_boundary (const unsigned &b, const Vector< double > &boundary_zeta) |
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 |
double | raw_value (const unsigned &t, const unsigned &i) const |
double | value (const unsigned &i) const |
double | value (const unsigned &t, const unsigned &i) const |
void | value (Vector< double > &values) const |
Vector< double > | value () const |
Return vector of values calculated using value(vector). More... | |
void | value (const unsigned &t, Vector< double > &values) const |
void | position (Vector< double > &pos) const |
Vector< double > | position () const |
Return vector of position of node at current time. More... | |
void | position (const unsigned &t, Vector< double > &pos) const |
double | position (const unsigned &i) const |
double | position (const unsigned &t, const unsigned &i) const |
double | position_gen (const unsigned &k, const unsigned &i) const |
double | position_gen (const unsigned &t, const unsigned &k, const unsigned &i) const |
double | dposition_dt (const unsigned &i) const |
double | dposition_dt (const unsigned &j, const unsigned &i) const |
double | dposition_gen_dt (const unsigned &k, const unsigned &i) const |
double | dposition_gen_dt (const unsigned &j, const unsigned &k, const unsigned &i) const |
void | set_auxiliary_node_update_fct_pt (AuxNodeUpdateFctPt aux_node_update_fct_pt) |
bool | has_auxiliary_node_update_fct_pt () |
void | perform_auxiliary_node_update_fct () |
virtual unsigned | ngeom_data () const |
virtual Data ** | all_geom_data_pt () |
void | output (std::ostream &outfile) |
Output nodal position. More... | |
![]() | |
virtual void | clear_copied_pointers () |
Data () | |
Default constructor. More... | |
Data (const unsigned &initial_n_value) | |
Data (TimeStepper *const &time_stepper_pt, const unsigned &initial_n_value, const bool &allocate_storage=true) | |
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) |
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 |
virtual bool | is_a_copy (const unsigned &i) const |
void | set_value (const unsigned &i, const double &value_) |
void | set_value (const unsigned &t, const unsigned &i, const double &value_) |
double | value (const unsigned &i) const |
double | value (const unsigned &t, const unsigned &i) const |
void | value (Vector< double > &values) const |
Compute Vector of values for the Data value. More... | |
void | value (const unsigned &t, Vector< double > &values) const |
double * | value_pt (const unsigned &i) const |
double * | value_pt (const unsigned &t, const unsigned &i) const |
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) |
void | constrain (const unsigned &i) |
void | unconstrain (const unsigned &i) |
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) |
unsigned | self_test () |
unsigned | nvalue () const |
Return number of values stored in data object (incl pinned ones). More... | |
unsigned | ntstorage () const |
virtual void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
virtual void | add_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
Private Attributes | |
FiniteElement * | Node_update_element_pt |
Vector< double > | S_in_node_update_element |
Vector< GeomObject * > | Geom_object_pt |
Additional Inherited Members | |
![]() | |
typedef void(* | AuxNodeUpdateFctPt) (Node *) |
Function pointer to auxiliary node update function. More... | |
![]() | |
static unsigned | No_independent_position = 10 |
![]() | |
static long | Is_pinned = -1 |
Static "Magic number" to indicate pinned values. More... | |
static long | Is_segregated_solve_pinned = -3 |
static long | Is_unclassified = -10 |
static long | Is_constrained = -2 |
![]() | |
void | x_gen_range_check (const unsigned &t, const unsigned &k, const unsigned &i) const |
double * | x_position_pt (const unsigned &i) |
Direct access to the pointer to the i-th stored coordinate data. More... | |
![]() | |
virtual void | reset_copied_pointers () |
![]() | |
double ** | X_position |
TimeStepper * | Position_time_stepper_pt |
Pointer to the timestepper associated with the position data. More... | |
HangInfo ** | Hanging_pt |
unsigned | Ndim |
Eulerian dimension of the node. More... | |
unsigned | Nposition_type |
bool | Obsolete |
AuxNodeUpdateFctPt | Aux_node_update_fct_pt |
![]() | |
Data ** | Copy_of_data_pt |
unsigned | Ncopies |
![]() | |
static TimeStepper * | Default_static_time_stepper_pt = new Steady<0>() |
Default (static) timestepper used in steady problems. More... | |
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// MacroElementNodeUpdate nodes are nodes with a positional update function, based on their element's MacroElement representation.
|
inline |
Constructor for steady node of spatial dimension n_dim, with n_position_type generalised coordinates and with initial_nvalue dofs.
|
inline |
Constructor for bog-standard node of spatial dimension n_dim, with n_position_type generalised coordinates, with initial_nvalue dofs and with time dependence.
|
delete |
Broken copy constructor.
|
inlinevirtual |
|
inlinevirtual |
Return all geometric objects that affect the node update.
Reimplemented from oomph::Node.
References Geom_object_pt.
|
inline |
Vector of (pointers to) geometric objects involved in node update function
References Geom_object_pt.
Referenced by set_node_update_info().
|
inline |
Pointer to i-th geometric object involved in node update function
References Geom_object_pt, and i.
|
inlinevirtual |
Number of geometric objects involved in node update function.
Reimplemented from oomph::Node.
References Geom_object_pt.
|
virtual |
Update the current nodal position. If required, perform the auxiliary update of nodal values. If update_all_time_levels_for_new_node==true, previous positions are also updated – as indicated by the name of this flag, this should only be done for newly created nodes, when this function is called from MacroElementNodeUpdateElementBase::build_macro_element_node_update_node(...)
//////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// Excute the update function: Update the current (and if update_all_time_levels_for_new_node==true also the previous) nodal position. Also update the current nodal values if an auxiliary update function is defined. Note: Updating of previous positions is only required (and should only be performed for) newly created MacroElementNodeUpdateNodes i.e. when this function is called from... If a node is hanging, its position is determined via its hanging node constraints after updating the position of its master nodes.
Reimplemented from oomph::Node.
References oomph::Node::Aux_node_update_fct_pt, oomph::FiniteElement::get_x(), oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::Node::ndim(), oomph::HangInfo::nmaster(), Node_update_element_pt, oomph::TimeStepper::nprev_values(), oomph::Node::Position_time_stepper_pt, S_in_node_update_element, plotPSD::t, and oomph::Node::x().
Referenced by oomph::MacroElementNodeUpdateMesh::node_update().
|
inline |
Pointer to finite element that performs the update by referring to its macro-element representation (Access required...)
References Node_update_element_pt.
Referenced by set_node_update_info().
Vector of local coordinates of node with the finite element that performs the MacroElement-based node update operation
References S_in_node_update_element.
Referenced by set_node_update_info().
|
inline |
Set node update information for node: Pass the pointer to the element that performs the update operation, the vector containing the node's local coordinates in that element and the vector of (pointers to) the geometric objects that affect the node update.
References geom_object_pt(), Geom_object_pt, node_update_element_pt(), Node_update_element_pt, s_in_node_update_element(), and S_in_node_update_element.
|
inline |
Return vector of geometric objects involved in node update function
References Geom_object_pt.
|
private |
Vector of geometric objects that are involved in the node update operation
Referenced by all_geom_object_pt(), geom_object_pt(), ngeom_object(), set_node_update_info(), and vector_geom_object_pt().
|
private |
Pointer to finite element that performs the node update by referring to its macro-element representation
Referenced by node_update(), node_update_element_pt(), and set_node_update_info().
Vector containing the node's local coordinates in node update element.
Referenced by node_update(), s_in_node_update_element(), and set_node_update_info().