Refineable version of the PseudoSolidNodeUpdateELement. More...
#include <pseudosolid_node_update_elements.h>
Public Member Functions | |
RefineablePseudoSolidNodeUpdateElement () | |
Constructor, call the BASIC and SOLID elements' constructors and set the "density" parameter for solid element to zero. More... | |
void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
Function to describe the local dofs of the element. 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... | |
unsigned | required_nvalue (const unsigned &n) const |
The required number of values is the sum of the two. More... | |
unsigned | ncont_interpolated_values () const |
The number of continuously interpolated values is the sum of the SOLID and BASIC values. More... | |
int | solid_p_nodal_index () const |
We assume that the solid stuff is stored at the end of the nodes, i.e. its index is the number of continuously interplated values in the BASIC equations. More... | |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Final override for residuals function: adds contributions from both underlying element types. More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
Final override for jacobian function: Calls get_jacobian() for both of the underlying element types. More... | |
void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
Final override for mass matrix function: contributions are included from both the underlying element types. More... | |
void | fill_in_shape_derivatives_by_fd (DenseMatrix< double > &jacobian) |
Fill in the derivatives of the BASIC equations w.r.t. to the solid position dofs, taking hanging nodes into account. More... | |
void | identify_geometric_data (std::set< Data *> &geometric_data_pt) |
Specify Data that affects the geometry of the element by adding the position Data to the set that's passed in. (This functionality is required in FSI problems; set is used to avoid double counting). Refineable version includes hanging nodes. More... | |
void | assign_additional_local_eqn_numbers () |
Final override for the assign__additional_local_eqn_numbers(): Call the version for the BASIC element. More... | |
void | rebuild_from_sons (Mesh *&mesh_pt) |
Call rebuild_from_sons() for both of the underlying element types. More... | |
void | get_interpolated_values (const unsigned &t, const Vector< double > &s, Vector< double > &values) |
Call get_interpolated_values(...) for both of the underlying element types. More... | |
void | get_interpolated_values (const Vector< double > &s, Vector< double > &values) |
Call get_interpolated_values(...) for both of the underlying element types. More... | |
Node * | interpolating_node_pt (const unsigned &n, const int &value_id) |
We must compose the underlying interpolating nodes from the BASIC and SOLID equations, the BASIC ones are first. More... | |
double | local_one_d_fraction_of_interpolating_node (const unsigned &n1d, const unsigned &i, const int &value_id) |
The pressure nodes are the corner nodes, so when value_id==0, the fraction is the same as the 1d node number, 0 or 1. More... | |
Node * | get_interpolating_node_at_local_coordinate (const Vector< double > &s, const int &value_id) |
The velocity nodes are the same as the geometric nodes. The pressure nodes must be calculated by using the same methods as the geometric nodes, but by recalling that there are only two pressure nodes per edge. More... | |
unsigned | ninterpolating_node_1d (const int &value_id) |
The number of 1d pressure nodes is 2, otherwise we have the positional nodes. More... | |
unsigned | ninterpolating_node (const int &value_id) |
The number of pressure nodes is 2^DIM. The number of velocity nodes is the same as the number of geometric nodes. More... | |
void | interpolating_basis (const Vector< double > &s, Shape &psi, const int &value_id) const |
The basis interpolating the pressure is given by pshape(). / The basis interpolating the velocity is shape(). More... | |
unsigned | num_Z2_flux_terms () |
Number of 'flux' terms for Z2 error estimation: Error estimation is based on error in BASIC element. More... | |
void | get_Z2_flux (const Vector< double > &s, Vector< double > &flux) |
void | further_setup_hanging_nodes () |
Perform additional hanging node procedures for variables that are not interpolated by all nodes. Done for both of the underlying element types. More... | |
void | build (Mesh *&mesh_pt, Vector< Node *> &new_node_pt, bool &was_already_built, std::ofstream &new_nodes_file) |
Build function: Call the one for the SOLID element since it calls the one basic build function automatically. More... | |
void | build (Mesh *&mesh_pt, Vector< Node *> &new_node_pt, bool &was_already_built) |
Build function: Call the one for the SOLID element since it calls the one basic build function automatically. More... | |
void | further_build () |
unsigned | nvertex_node () const |
Number of vertex nodes in the element. More... | |
Node * | vertex_node_pt (const unsigned &j) const |
Pointer to the j-th vertex node in the element. More... | |
void | compute_norm (double &norm) |
Compute norm of solution. Use version in BASIC element. More... | |
void | compute_exact_Z2_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_flux_pt, double &error, double &norm) |
Plot the error when compared against a given exact flux. Also calculates the norm of the error and that of the exact flux. Use version in BASIC element. More... | |
unsigned | nrecovery_order () |
Order of recovery shape functions for Z2 error estimation: Done for BASIC element since it determines the refinement. More... | |
void | output (std::ostream &outfile) |
Overload the output function: Use that of the BASIC element. More... | |
void | output (std::ostream &outfile, const unsigned &n_p) |
Output function, plotting at n_p points: Use that of the BASIC element. More... | |
void | output (FILE *file_pt) |
Overload the output function: Use that of the BASIC element. More... | |
void | output (FILE *file_pt, const unsigned &n_p) |
Output function: Use that of the BASIC element. More... | |
unsigned | ndof_types () const |
The number of "DOF types" that degrees of freedom in this element are sub-divided into. More... | |
unsigned | nbasic_dof_types () const |
return the number of DOF types associated with the BASIC elements in this combined element More... | |
unsigned | nsolid_dof_types () const |
return the number of DOF types associated with the SOLID elements in this combined element More... | |
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 contains the global equation number of the unknown, while the second one contains the number of the "DOF type" that this unknown is associated with. This method combines the get_dof_numbers_for_unknowns(...) method for the BASIC and SOLID elements. The basic elements retain their DOF type numbering and the SOLID elements DOF type numbers are incremented by nbasic_dof_types(). More... | |
Refineable version of the PseudoSolidNodeUpdateELement.
Definition at line 558 of file pseudosolid_node_update_elements.h.
|
inline |
Constructor, call the BASIC and SOLID elements' constructors and set the "density" parameter for solid element to zero.
Definition at line 566 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidHelper::Zero.
|
inline |
Final override for the assign__additional_local_eqn_numbers(): Call the version for the BASIC element.
Definition at line 1046 of file pseudosolid_node_update_elements.h.
|
inline |
Build function: Call the one for the SOLID element since it calls the one basic build function automatically.
Definition at line 1252 of file pseudosolid_node_update_elements.h.
|
inline |
Build function: Call the one for the SOLID element since it calls the one basic build function automatically.
Definition at line 1263 of file pseudosolid_node_update_elements.h.
|
inline |
Plot the error when compared against a given exact flux. Also calculates the norm of the error and that of the exact flux. Use version in BASIC element.
Definition at line 1295 of file pseudosolid_node_update_elements.h.
|
inline |
Compute norm of solution. Use version in BASIC element.
Definition at line 1287 of file pseudosolid_node_update_elements.h.
|
inline |
Function to describe the local dofs of the element. 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(...)
Definition at line 581 of file pseudosolid_node_update_elements.h.
|
inline |
Final override for jacobian function: Calls get_jacobian() for both of the underlying element types.
Definition at line 625 of file pseudosolid_node_update_elements.h.
References oomph::fill_in_contribution_to_jacobian().
|
inline |
Final override for mass matrix function: contributions are included from both the underlying element types.
Definition at line 640 of file pseudosolid_node_update_elements.h.
References oomph::fill_in_contribution_to_jacobian_and_mass_matrix().
|
inline |
Final override for residuals function: adds contributions from both underlying element types.
Definition at line 615 of file pseudosolid_node_update_elements.h.
References oomph::fill_in_contribution_to_residuals().
|
inline |
Fill in the derivatives of the BASIC equations w.r.t. to the solid position dofs, taking hanging nodes into account.
Definition at line 660 of file pseudosolid_node_update_elements.h.
References oomph::fill_in_contribution_to_residuals(), oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::nmaster(), oomph::Node::perform_auxiliary_node_update_fct(), and oomph::Node::x_gen().
|
inline |
Further build: Done for both of the underlying element types.
Definition at line 1271 of file pseudosolid_node_update_elements.h.
|
inline |
Perform additional hanging node procedures for variables that are not interpolated by all nodes. Done for both of the underlying element types.
Definition at line 1243 of file pseudosolid_node_update_elements.h.
|
inline |
Create a list of pairs for all unknowns in this element, so that the first entry in each pair contains the global equation number of the unknown, while the second one contains the number of the "DOF type" that this unknown is associated with. This method combines the get_dof_numbers_for_unknowns(...) method for the BASIC and SOLID elements. The basic elements retain their DOF type numbering and the SOLID elements DOF type numbers are incremented by nbasic_dof_types().
Definition at line 1351 of file pseudosolid_node_update_elements.h.
|
inline |
Call get_interpolated_values(...) for both of the underlying element types.
Definition at line 1060 of file pseudosolid_node_update_elements.h.
|
inline |
Call get_interpolated_values(...) for both of the underlying element types.
Definition at line 1084 of file pseudosolid_node_update_elements.h.
|
inline |
The velocity nodes are the same as the geometric nodes. The pressure nodes must be calculated by using the same methods as the geometric nodes, but by recalling that there are only two pressure nodes per edge.
Definition at line 1149 of file pseudosolid_node_update_elements.h.
|
inline |
'Flux' vector for Z2 error estimation: Error estimation is based on error in BASIC element
Definition at line 1235 of file pseudosolid_node_update_elements.h.
|
inline |
Specify Data that affects the geometry of the element by adding the position Data to the set that's passed in. (This functionality is required in FSI problems; set is used to avoid double counting). Refineable version includes hanging nodes.
Definition at line 1005 of file pseudosolid_node_update_elements.h.
References oomph::HangInfo::master_node_pt(), and oomph::HangInfo::nmaster().
|
inline |
The basis interpolating the pressure is given by pshape(). / The basis interpolating the velocity is shape().
Definition at line 1209 of file pseudosolid_node_update_elements.h.
|
inline |
We must compose the underlying interpolating nodes from the BASIC and SOLID equations, the BASIC ones are first.
Definition at line 1107 of file pseudosolid_node_update_elements.h.
|
inline |
The pressure nodes are the corner nodes, so when value_id==0, the fraction is the same as the 1d node number, 0 or 1.
Definition at line 1123 of file pseudosolid_node_update_elements.h.
|
inline |
return the number of DOF types associated with the BASIC elements in this combined element
Definition at line 1331 of file pseudosolid_node_update_elements.h.
|
inline |
The number of continuously interpolated values is the sum of the SOLID and BASIC values.
Definition at line 594 of file pseudosolid_node_update_elements.h.
|
inline |
The number of "DOF types" that degrees of freedom in this element are sub-divided into.
Definition at line 1324 of file pseudosolid_node_update_elements.h.
|
inline |
The number of pressure nodes is 2^DIM. The number of velocity nodes is the same as the number of geometric nodes.
Definition at line 1190 of file pseudosolid_node_update_elements.h.
|
inline |
The number of 1d pressure nodes is 2, otherwise we have the positional nodes.
Definition at line 1171 of file pseudosolid_node_update_elements.h.
|
inline |
Order of recovery shape functions for Z2 error estimation: Done for BASIC element since it determines the refinement.
Definition at line 1306 of file pseudosolid_node_update_elements.h.
|
inline |
return the number of DOF types associated with the SOLID elements in this combined element
Definition at line 1338 of file pseudosolid_node_update_elements.h.
|
inline |
Number of 'flux' terms for Z2 error estimation: Error estimation is based on error in BASIC element.
Definition at line 1231 of file pseudosolid_node_update_elements.h.
|
inline |
Number of vertex nodes in the element.
Definition at line 1279 of file pseudosolid_node_update_elements.h.
|
inline |
Overload the output function: Use that of the BASIC element.
Definition at line 1309 of file pseudosolid_node_update_elements.h.
References oomph::output().
|
inline |
Output function, plotting at n_p points: Use that of the BASIC element.
Definition at line 1312 of file pseudosolid_node_update_elements.h.
References oomph::output().
|
inline |
Overload the output function: Use that of the BASIC element.
Definition at line 1316 of file pseudosolid_node_update_elements.h.
References oomph::output().
|
inline |
Output function: Use that of the BASIC element.
Definition at line 1319 of file pseudosolid_node_update_elements.h.
References oomph::output().
|
inline |
Call rebuild_from_sons() for both of the underlying element types.
Definition at line 1053 of file pseudosolid_node_update_elements.h.
|
inline |
The required number of values is the sum of the two.
Definition at line 589 of file pseudosolid_node_update_elements.h.
|
inline |
We assume that the solid stuff is stored at the end of the nodes, i.e. its index is the number of continuously interplated values in the BASIC equations.
Definition at line 601 of file pseudosolid_node_update_elements.h.
|
inline |
Pointer to the j-th vertex node in the element.
Definition at line 1283 of file pseudosolid_node_update_elements.h.