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) |
'Flux' vector for Z2 error estimation: Error estimation is based on error in BASIC element More... | |
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 () |
Further build: Done for both of the underlying element types. More... | |
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 583 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 589 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 1093 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 1323 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 1312 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 1360 of file pseudosolid_node_update_elements.h.
|
inline |
Compute norm of solution. Use version in BASIC element.
Definition at line 1352 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 603 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 656 of file pseudosolid_node_update_elements.h.
References oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd().
|
inline |
Final override for mass matrix function: contributions are included from both the underlying element types.
Definition at line 671 of file pseudosolid_node_update_elements.h.
References oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd().
|
inline |
Final override for residuals function: adds contributions from both underlying element types.
Definition at line 646 of file pseudosolid_node_update_elements.h.
|
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 691 of file pseudosolid_node_update_elements.h.
References oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::nmaster(), oomph::Node::perform_auxiliary_node_update_fct(), oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::solid_p_nodal_index(), and oomph::Node::x_gen().
Referenced by oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_contribution_to_jacobian(), and oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_contribution_to_jacobian_and_mass_matrix().
|
inline |
Further build: Done for both of the underlying element types.
Definition at line 1332 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 1303 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 1429 of file pseudosolid_node_update_elements.h.
References oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::nbasic_dof_types().
|
inline |
Call get_interpolated_values(...) for both of the underlying element types.
Definition at line 1108 of file pseudosolid_node_update_elements.h.
|
inline |
Call get_interpolated_values(...) for both of the underlying element types.
Definition at line 1136 of file pseudosolid_node_update_elements.h.
References s.
|
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 1207 of file pseudosolid_node_update_elements.h.
References s.
|
inline |
'Flux' vector for Z2 error estimation: Error estimation is based on error in BASIC element
Definition at line 1295 of file pseudosolid_node_update_elements.h.
References s.
|
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 1054 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 1266 of file pseudosolid_node_update_elements.h.
References s.
|
inline |
We must compose the underlying interpolating nodes from the BASIC and SOLID equations, the BASIC ones are first.
Definition at line 1162 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 1181 of file pseudosolid_node_update_elements.h.
References i.
|
inline |
return the number of DOF types associated with the BASIC elements in this combined element
Definition at line 1409 of file pseudosolid_node_update_elements.h.
Referenced by oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::get_dof_numbers_for_unknowns().
|
inline |
The number of continuously interpolated values is the sum of the SOLID and BASIC values.
Definition at line 618 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 1402 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 1247 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 1228 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 1371 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 1416 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 1288 of file pseudosolid_node_update_elements.h.
|
inline |
Number of vertex nodes in the element.
Definition at line 1340 of file pseudosolid_node_update_elements.h.
|
inline |
Overload the output function: Use that of the BASIC element.
Definition at line 1389 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Output function: Use that of the BASIC element.
Definition at line 1395 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Overload the output function: Use that of the BASIC element.
Definition at line 1377 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Output function, plotting at n_p points: Use that of the BASIC element.
Definition at line 1383 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Call rebuild_from_sons() for both of the underlying element types.
Definition at line 1100 of file pseudosolid_node_update_elements.h.
|
inline |
The required number of values is the sum of the two.
Definition at line 611 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 627 of file pseudosolid_node_update_elements.h.
Referenced by oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd().
|
inline |
Pointer to the j-th vertex node in the element.
Definition at line 1346 of file pseudosolid_node_update_elements.h.