A templated class that permits combination two different element types, for the solution of problems in deforming domains. The first template paremter BASIC is the standard element and the second SOLID solves the equations that are used to control the mesh deformation. More...
#include <pseudosolid_node_update_elements.h>
Public Member Functions | |
PseudoSolidNodeUpdateElement () | |
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... | |
void | compute_norm (double &el_norm) |
Compute norm of solution: use the version in the BASIC class if there's any ambiguity. More... | |
unsigned | required_nvalue (const unsigned &n) const |
The required number of values is the sum of the two. 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 the residuals function. Contributions are added from both underlying element types. More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
Final override for jacobian function: Contributions are included from both 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 | evaluate_shape_derivs_by_direct_fd () |
Evaluate shape derivatives by direct finite differencing. More... | |
void | evaluate_shape_derivs_by_chain_rule () |
Evaluate shape derivatives by chain rule. More... | |
void | fill_in_shape_derivatives (DenseMatrix< double > &jacobian) |
Fill in the shape derivatives of the BASIC equations w.r.t. the solid position dofs. More... | |
void | fill_in_shape_derivatives_by_fd (DenseMatrix< double > &jacobian) |
Fill in the derivatives of the BASIC equations w.r.t. the solid position dofs. 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). More... | |
void | output (std::ostream &outfile) |
Overload the output function: Call that of the basic element. More... | |
void | output (std::ostream &outfile, const unsigned &n_p) |
Output function: Plot at n_p plot points using the basic element's output function. More... | |
void | output (FILE *file_pt) |
Overload the output function: Call that of the basic element. More... | |
void | output (FILE *file_pt, const unsigned &n_p) |
Output function is just the same as the basic equations. 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 | 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... | |
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... | |
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... | |
unsigned | nrecovery_order () |
Order of recovery shape functions for Z2 error estimation: Done for BASIC element since it determines the refinement. 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... | |
Private Attributes | |
bool | Shape_derivs_by_direct_fd |
Boolean flag to indicate shape derivative method. More... | |
A templated class that permits combination two different element types, for the solution of problems in deforming domains. The first template paremter BASIC is the standard element and the second SOLID solves the equations that are used to control the mesh deformation.
Definition at line 55 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 65 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidHelper::Zero.
|
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 463 of file pseudosolid_node_update_elements.h.
|
inline |
Compute norm of solution: use the version in the BASIC class if there's any ambiguity.
Definition at line 88 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 79 of file pseudosolid_node_update_elements.h.
|
inline |
Evaluate shape derivatives by chain rule.
Definition at line 167 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::Shape_derivs_by_direct_fd.
|
inline |
Evaluate shape derivatives by direct finite differencing.
Definition at line 161 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::Shape_derivs_by_direct_fd.
|
inline |
Final override for jacobian function: Contributions are included from both the underlying element types.
Definition at line 129 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives().
|
inline |
Final override for mass matrix function: contributions are included from both the underlying element types.
Definition at line 143 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives().
|
inline |
Final override for the residuals function. Contributions are added from both underlying element types.
Definition at line 119 of file pseudosolid_node_update_elements.h.
|
inline |
Fill in the shape derivatives of the BASIC equations w.r.t. the solid position dofs.
Definition at line 175 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives_by_fd(), i, and oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::Shape_derivs_by_direct_fd.
Referenced by oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_contribution_to_jacobian(), and oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_contribution_to_jacobian_and_mass_matrix().
|
inline |
Fill in the derivatives of the BASIC equations w.r.t. the solid position dofs.
Definition at line 246 of file pseudosolid_node_update_elements.h.
References i.
Referenced by oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives().
|
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 528 of file pseudosolid_node_update_elements.h.
References oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::nbasic_dof_types().
|
inline |
'Flux' vector for Z2 error estimation: Error estimation is based on error in BASIC element
Definition at line 474 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).
Definition at line 415 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 508 of file pseudosolid_node_update_elements.h.
Referenced by oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::get_dof_numbers_for_unknowns().
|
inline |
The number of "DOF types" that degrees of freedom in this element are sub-divided into.
Definition at line 501 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 493 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 515 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 454 of file pseudosolid_node_update_elements.h.
|
inline |
Number of vertex nodes in the element.
Definition at line 480 of file pseudosolid_node_update_elements.h.
|
inline |
Overload the output function: Call that of the basic element.
Definition at line 441 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Output function is just the same as the basic equations.
Definition at line 447 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Overload the output function: Call that of the basic element.
Definition at line 428 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
Output function: Plot at n_p plot points using the basic element's output function.
Definition at line 435 of file pseudosolid_node_update_elements.h.
References oomph::CommandLineArgs::output().
|
inline |
The required number of values is the sum of the two.
Definition at line 94 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 102 of file pseudosolid_node_update_elements.h.
|
inline |
Pointer to the j-th vertex node in the element.
Definition at line 486 of file pseudosolid_node_update_elements.h.
|
private |
Boolean flag to indicate shape derivative method.
Definition at line 60 of file pseudosolid_node_update_elements.h.
Referenced by oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::evaluate_shape_derivs_by_chain_rule(), oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::evaluate_shape_derivs_by_direct_fd(), and oomph::PseudoSolidNodeUpdateElement< BASIC, SOLID >::fill_in_shape_derivatives().