|
void | clear_copied_pointers () |
|
| BoundaryNode () |
| Default Constructor. More...
|
|
| BoundaryNode (const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value) |
|
| BoundaryNode (TimeStepper *const &time_stepper_pt, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value) |
|
| BoundaryNode (const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value) |
|
| BoundaryNode (TimeStepper *const &time_stepper_pt, const unsigned &n_lagrangian, const unsigned &n_lagrangian_type, const unsigned &n_dim, const unsigned &n_position_type, const unsigned &initial_n_value) |
|
| ~BoundaryNode () |
| Destructor resets pointers if. More...
|
|
| BoundaryNode (const BoundaryNode< NODE_TYPE > &node)=delete |
| Broken copy constructor. More...
|
|
void | operator= (const BoundaryNode< NODE_TYPE > &)=delete |
| Broken assignment operator. More...
|
|
bool | boundary_coordinates_have_been_set_up () |
| Have boundary coordinates been set up? More...
|
|
void | get_boundaries_pt (std::set< unsigned > *&boundaries_pt) |
|
bool | is_on_boundary () const |
|
bool | is_on_boundary (const unsigned &b) const |
|
void | add_to_boundary (const unsigned &b) |
| Add the node to mesh boundary b, final overload. More...
|
|
void | remove_from_boundary (const unsigned &b) |
| Remover the node from mesh boundary b, final overload. More...
|
|
unsigned | ncoordinates_on_boundary (const unsigned &b) |
| Get the number of boundary coordinates on mesh boundary b. More...
|
|
void | get_coordinates_on_boundary (const unsigned &b, Vector< double > &boundary_zeta) |
|
void | set_coordinates_on_boundary (const unsigned &b, const Vector< double > &boundary_zeta) |
|
void | get_coordinates_on_boundary (const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta) |
|
void | set_coordinates_on_boundary (const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta) |
|
unsigned | nvalue_assigned_by_face_element (const unsigned &face_id=0) const |
|
void | assign_additional_values_with_face_id (const unsigned &n_additional_value, const unsigned &face_id=0) |
|
void | make_periodic (Node *const &node_pt) |
| Make the node periodic. More...
|
|
void | make_periodic_nodes (const Vector< Node * > &periodic_nodes_pt) |
|
bool | is_a_copy () const |
|
bool | is_a_copy (const unsigned &i) const |
|
Node * | copied_node_pt () const |
|
void | assign_eqn_numbers (unsigned long &global_ndof, Vector< double * > &dof_pt) |
| Overload the equation assignment operation. More...
|
|
void | resize (const unsigned &n_value) |
| Resize the number of equations. More...
|
|
void | make_periodic (Node *const &node_pt) |
| Make the node periodic. More...
|
|
std::map< unsigned, unsigned > *& | index_of_first_value_assigned_by_face_element_pt () |
|
unsigned | index_of_first_value_assigned_by_face_element (const unsigned &face_id=0) const |
|
unsigned | index_of_first_value_assigned_by_face_element (const bool &throw_if_no_value_assigned_by_face_element, const bool &throw_quietly, const unsigned &face_id=0) const |
|
| BoundaryNodeBase () |
| Default constructor, set the pointers to the storage to NULL. More...
|
|
virtual | ~BoundaryNodeBase () |
| Destructor, clean up any allocated storage for the boundaries. More...
|
|
| BoundaryNodeBase (const BoundaryNodeBase &boundary_node_base)=delete |
| Broken copy constructor. More...
|
|
void | operator= (const BoundaryNodeBase &)=delete |
| Broken assignment operator. More...
|
|
bool | boundary_coordinates_have_been_set_up () |
| Have boundary coordinates been set up? More...
|
|
void | get_boundaries_pt (std::set< unsigned > *&boundaries_pt) |
|
void | add_to_boundary (const unsigned &b) |
| Add the node to the mesh boundary b. More...
|
|
void | remove_from_boundary (const unsigned &b) |
| Remove the node from the mesh boundary b. More...
|
|
bool | is_on_boundary () const |
| Test whether the node lies on a boundary. More...
|
|
bool | is_on_boundary (const unsigned &b) const |
| Test whether the node lies on mesh boundary b. More...
|
|
unsigned | ncoordinates_on_boundary (const unsigned &b) |
| Get the number of boundary coordinates on mesh boundary b. More...
|
|
void | get_coordinates_on_boundary (const unsigned &b, Vector< double > &boundary_zeta) |
| Return the vector of boundary coordinates on mesh boundary b. More...
|
|
void | set_coordinates_on_boundary (const unsigned &b, const Vector< double > &boundary_zeta) |
| Set the vector of boundary coordinates on mesh boundary b. More...
|
|
void | get_coordinates_on_boundary (const unsigned &b, const unsigned &k, Vector< double > &boundary_zeta) |
|
void | set_coordinates_on_boundary (const unsigned &b, const unsigned &k, const Vector< double > &boundary_zeta) |
|
template<class NODE_TYPE>
class oomph::BoundaryNode< NODE_TYPE >
A template Class for BoundaryNodes; that is Nodes that MAY live on the boundary of a Mesh. The class is formed by a simple composition of the template parameter NODE_TYPE, which must be a Node class and the BoundaryNodeBase class. Final overloading of functions is always in favour of the BoundaryNodeBase implementation; i.e. these nodes can live on boundaries.
template<class NODE_TYPE >
Member function to allocates storage for a given number of additional degrees of freedom, n_additional_value, associated with a particular face_id to the Node node_pt. Needs to be filled in here so that access to the nodal values is available.
Implements oomph::BoundaryNodeBase.
2682 if (n_additional_value == 0)
2684 std::ostringstream warn_message;
2686 <<
"No additional data values are being added to the boundary node "
2688 <<
"by face id " << face_id <<
".\n"
2689 <<
"This means that the function \n"
2690 <<
"BoundaryNode::index_of_first_value_assigned_by_face_element(id) "
2692 <<
"will return a value that is equal to the number of values stored "
2694 <<
"Calling Node::value(...) with this index will lead to an "
2695 "out-of-range error.\n"
2696 <<
"The anticpated usage of a loop from the index over the number of "
2698 <<
"will not cause any problems, but if you try to do anything else, "
2699 "you may be surprised.\n"
2700 <<
"You have been warned!\n";
2710 new std::map<unsigned, unsigned>;
2714 const unsigned n_value = this->nvalue();
2719 this->Index_of_first_value_assigned_by_face_element_pt->end())
2722 (*Index_of_first_value_assigned_by_face_element_pt)[face_id] = n_value;
2728 const unsigned n_value_for_id =
2733 if (n_value_for_id == n_additional_value)
2744 n_value_for_id) != n_value)
2747 std::ostringstream warn_message;
2748 warn_message <<
"Trying to (resize) number of unknowns associated "
2751 <<
"but previous storage for this data is not at the "
2752 "end of the nodal values.\n"
2753 <<
"The anticipated usage here is within constructors "
2754 "that add additional equations\n"
2755 <<
"to existing FaceElements in which case we will "
2756 "always be at the end.\n"
2757 <<
"If you are trying to do something else, then try "
2758 "using a different id.\n"
2759 <<
" FaceElement::add_additional_values(...)."
2760 <<
" For consistency with earlier versions, this will "
2762 OomphLibWarning(warn_message.str(),
2773 this->
resize(n_value + n_additional_value);
void resize(const unsigned &n_value)
Resize the number of equations.
Definition: nodes.h:2854
unsigned nvalue_assigned_by_face_element(const unsigned &face_id=0) const
Definition: nodes.h:2610
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
References oomph::BoundaryNodeBase::Index_of_first_value_assigned_by_face_element_pt, oomph::BoundaryNode< NODE_TYPE >::nvalue_assigned_by_face_element(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, and oomph::BoundaryNode< NODE_TYPE >::resize().