![]() |
|
Refineable version of the PseudoSolidNodeUpdateELement. More...
#include <pseudosolid_node_update_elements.h>
Public Member Functions | |
RefineablePseudoSolidNodeUpdateElement () | |
void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
unsigned | required_nvalue (const unsigned &n) const |
The required number of values is the sum of the two. More... | |
unsigned | ncont_interpolated_values () const |
int | solid_p_nodal_index () const |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
void | fill_in_shape_derivatives_by_fd (DenseMatrix< double > &jacobian) |
void | identify_geometric_data (std::set< Data * > &geometric_data_pt) |
void | assign_additional_local_eqn_numbers () |
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) |
void | get_interpolated_values (const Vector< double > &s, Vector< double > &values) |
Node * | interpolating_node_pt (const unsigned &n, const int &value_id) |
double | local_one_d_fraction_of_interpolating_node (const unsigned &n1d, const unsigned &i, const int &value_id) |
Node * | get_interpolating_node_at_local_coordinate (const Vector< double > &s, const int &value_id) |
unsigned | ninterpolating_node_1d (const int &value_id) |
unsigned | ninterpolating_node (const int &value_id) |
void | interpolating_basis (const Vector< double > &s, Shape &psi, const int &value_id) const |
unsigned | num_Z2_flux_terms () |
void | get_Z2_flux (const Vector< double > &s, Vector< double > &flux) |
void | further_setup_hanging_nodes () |
void | build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt, bool &was_already_built, std::ofstream &new_nodes_file) |
void | build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt, bool &was_already_built) |
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) |
unsigned | nrecovery_order () |
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 |
unsigned | nbasic_dof_types () const |
unsigned | nsolid_dof_types () const |
void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
Refineable version of the PseudoSolidNodeUpdateELement.
|
inline |
Constructor, call the BASIC and SOLID elements' constructors and set the "density" parameter for solid element to zero
References oomph::PseudoSolidHelper::Zero.
|
inline |
|
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
References calibrate::error.
|
inline |
|
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(...)
References out().
|
inline |
Final override for jacobian function: Calls get_jacobian() for both of the underlying element types
References oomph::fill_in_contribution_to_jacobian(), and 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
References oomph::fill_in_contribution_to_jacobian_and_mass_matrix(), and oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd().
|
inline |
Final override for residuals function: adds contributions from both underlying element types
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
References oomph::fill_in_contribution_to_residuals(), oomph::Node::hanging_pt(), i, oomph::Node::is_hanging(), k, m, oomph::HangInfo::master_node_pt(), n, 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 |
|
inline |
|
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().
References oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::nbasic_dof_types().
|
inline |
Call get_interpolated_values(...) for both of the underlying element types
References s, and plotPSD::t.
|
inline |
|
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.
References s.
|
inline |
'Flux' vector for Z2 error estimation: Error estimation is based on error in BASIC element
References ProblemParameters::flux(), get_Z2_flux(), and 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
References j, m, 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().
References s.
|
inline |
We must compose the underlying interpolating nodes from the BASIC and SOLID equations, the BASIC ones are first
References n.
|
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.
References i.
|
inline |
return the number of DOF types associated with the BASIC elements in this combined element
Referenced by oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::get_dof_numbers_for_unknowns().
|
inline |
|
inline |
|
inline |
The number of pressure nodes is 2^DIM. The number of velocity nodes is the same as the number of geometric nodes.
|
inline |
The number of 1d pressure nodes is 2, otherwise we have the positional nodes
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Overload the output function: Use that of the BASIC element.
References output().
|
inline |
Output function: Use that of the BASIC element.
References output().
|
inline |
Overload the output function: Use that of the BASIC element.
References output().
|
inline |
Output function, plotting at n_p points: Use that of the BASIC element.
References output().
|
inline |
|
inline |
|
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.
Referenced by oomph::RefineablePseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd().
|
inline |