![]() |
|
#include <refineable_pml_helmholtz_elements.h>
Public Member Functions | |
RefineablePMLHelmholtzEquations () | |
Constructor, simply call other constructors. More... | |
RefineablePMLHelmholtzEquations (const RefineablePMLHelmholtzEquations< DIM > &dummy)=delete | |
Broken copy constructor. More... | |
unsigned | num_Z2_flux_terms () |
Broken assignment operator. More... | |
void | get_Z2_flux (const Vector< double > &s, Vector< double > &flux) |
void | get_interpolated_values (const Vector< double > &s, Vector< double > &values) |
void | get_interpolated_values (const unsigned &t, const Vector< double > &s, Vector< double > &values) |
void | further_build () |
Further build: Copy source function pointer from father element. More... | |
![]() | |
PMLHelmholtzEquations () | |
Constructor. More... | |
PMLHelmholtzEquations (const PMLHelmholtzEquations &dummy)=delete | |
Broken copy constructor. More... | |
virtual std::complex< unsigned > | u_index_helmholtz () const |
Broken assignment operator. More... | |
double *& | k_squared_pt () |
Get pointer to k_squared. More... | |
double | k_squared () |
Get the square of wavenumber. More... | |
const double & | alpha () const |
Alpha, wavenumber complex shift. More... | |
double *& | alpha_pt () |
Pointer to Alpha, wavenumber complex shift. More... | |
unsigned | nscalar_paraview () const |
void | scalar_value_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const |
void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const |
std::string | scalar_name_paraview (const unsigned &i) const |
void | output (std::ostream &outfile) |
Output with default number of plot points. More... | |
void | output (std::ostream &outfile, const unsigned &n_plot) |
void | output_total_real (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt incoming_wave_fct_pt, const double &phi, const unsigned &nplot) |
void | output_real (std::ostream &outfile, const double &phi, const unsigned &n_plot) |
void | output_imag (std::ostream &outfile, const double &phi, const unsigned &n_plot) |
void | output (FILE *file_pt) |
C_style output with default number of plot points. More... | |
void | output (FILE *file_pt, const unsigned &n_plot) |
void | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
void | output_real_fct (std::ostream &outfile, const double &phi, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
void | output_imag_fct (std::ostream &outfile, const double &phi, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
Get error against and norm of exact solution. More... | |
void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
Dummy, time dependent error checker. More... | |
void | compute_norm (double &norm) |
Compute norm of fe solution. More... | |
PMLHelmholtzSourceFctPt & | source_fct_pt () |
Access function: Pointer to source function. More... | |
PMLHelmholtzSourceFctPt | source_fct_pt () const |
Access function: Pointer to source function. Const version. More... | |
virtual void | get_source_helmholtz (const unsigned &ipt, const Vector< double > &x, std::complex< double > &source) const |
void | values_to_be_pinned_on_outer_pml_boundary (Vector< unsigned > &values_to_pin) |
void | get_flux (const Vector< double > &s, Vector< std::complex< double >> &flux) const |
Get flux: flux[i] = du/dx_i for real and imag part. More... | |
void | fill_in_contribution_to_residuals (Vector< double > &residuals) |
Add the element's contribution to its residual vector (wrapper) More... | |
void | fill_in_contribution_to_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
std::complex< double > | interpolated_u_pml_helmholtz (const Vector< double > &s) const |
unsigned | self_test () |
Self-test: Return 0 for OK. More... | |
void | compute_pml_coefficients (const unsigned &ipt, const Vector< double > &x, Vector< std::complex< double >> &pml_laplace_factor, std::complex< double > &pml_k_squared_factor) |
PMLMapping *& | pml_mapping_pt () |
Return a pointer to the PML Mapping object. More... | |
PMLMapping *const & | pml_mapping_pt () const |
Return a pointer to the PML Mapping object (const version) More... | |
unsigned | ndof_types () const |
void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
![]() | |
PMLElementBase () | |
Constructor. More... | |
virtual | ~PMLElementBase () |
Virtual destructor. More... | |
void | disable_pml () |
void | enable_pml (const int &direction, const double &interface_border_value, const double &outer_domain_border_value) |
![]() | |
void | set_dimension (const unsigned &dim) |
void | set_nodal_dimension (const unsigned &nodal_dim) |
void | set_nnodal_position_type (const unsigned &nposition_type) |
Set the number of types required to interpolate the coordinate. More... | |
void | set_n_node (const unsigned &n) |
int | nodal_local_eqn (const unsigned &n, const unsigned &i) const |
double | dJ_eulerian_at_knot (const unsigned &ipt, Shape &psi, DenseMatrix< double > &djacobian_dX) const |
FiniteElement () | |
Constructor. More... | |
virtual | ~FiniteElement () |
FiniteElement (const FiniteElement &)=delete | |
Broken copy constructor. More... | |
virtual bool | local_coord_is_valid (const Vector< double > &s) |
Broken assignment operator. More... | |
virtual void | move_local_coord_back_into_element (Vector< double > &s) const |
void | get_centre_of_gravity_and_max_radius_in_terms_of_zeta (Vector< double > &cog, double &max_radius) const |
virtual void | local_coordinate_of_node (const unsigned &j, Vector< double > &s) const |
virtual void | local_fraction_of_node (const unsigned &j, Vector< double > &s_fraction) |
virtual double | local_one_d_fraction_of_node (const unsigned &n1d, const unsigned &i) |
virtual void | set_macro_elem_pt (MacroElement *macro_elem_pt) |
MacroElement * | macro_elem_pt () |
Access function to pointer to macro element. More... | |
void | get_x (const Vector< double > &s, Vector< double > &x) const |
void | get_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
virtual void | get_x_from_macro_element (const Vector< double > &s, Vector< double > &x) const |
virtual void | get_x_from_macro_element (const unsigned &t, const Vector< double > &s, Vector< double > &x) |
virtual void | set_integration_scheme (Integral *const &integral_pt) |
Set the spatial integration scheme. More... | |
Integral *const & | integral_pt () const |
Return the pointer to the integration scheme (const version) More... | |
virtual void | shape (const Vector< double > &s, Shape &psi) const =0 |
virtual void | shape_at_knot (const unsigned &ipt, Shape &psi) const |
virtual void | dshape_local (const Vector< double > &s, Shape &psi, DShape &dpsids) const |
virtual void | dshape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids) const |
virtual void | d2shape_local (const Vector< double > &s, Shape &psi, DShape &dpsids, DShape &d2psids) const |
virtual void | d2shape_local_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsids, DShape &d2psids) const |
virtual double | J_eulerian (const Vector< double > &s) const |
virtual double | J_eulerian_at_knot (const unsigned &ipt) const |
void | check_J_eulerian_at_knots (bool &passed) const |
void | check_jacobian (const double &jacobian) const |
double | dshape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx) const |
virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx) const |
virtual double | dshape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsi, DenseMatrix< double > &djacobian_dX, RankFourTensor< double > &d_dpsidx_dX) const |
double | d2shape_eulerian (const Vector< double > &s, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
virtual double | d2shape_eulerian_at_knot (const unsigned &ipt, Shape &psi, DShape &dpsidx, DShape &d2psidx) const |
virtual void | describe_local_dofs (std::ostream &out, const std::string ¤t_string) const |
virtual void | describe_nodal_local_dofs (std::ostream &out, const std::string ¤t_string) const |
virtual void | assign_all_generic_local_eqn_numbers (const bool &store_local_dof_pt) |
Node *& | node_pt (const unsigned &n) |
Return a pointer to the local node n. More... | |
Node *const & | node_pt (const unsigned &n) const |
Return a pointer to the local node n (const version) More... | |
unsigned | nnode () const |
Return the number of nodes. More... | |
virtual unsigned | nnode_1d () const |
double | raw_nodal_position (const unsigned &n, const unsigned &i) const |
double | raw_nodal_position (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | raw_dnodal_position_dt (const unsigned &n, const unsigned &i) const |
double | raw_dnodal_position_dt (const unsigned &n, const unsigned &j, const unsigned &i) const |
double | raw_nodal_position_gen (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_nodal_position_gen (const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_dnodal_position_gen_dt (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | raw_dnodal_position_gen_dt (const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | nodal_position (const unsigned &n, const unsigned &i) const |
double | nodal_position (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | dnodal_position_dt (const unsigned &n, const unsigned &i) const |
Return the i-th component of nodal velocity: dx/dt at local node n. More... | |
double | dnodal_position_dt (const unsigned &n, const unsigned &j, const unsigned &i) const |
double | nodal_position_gen (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | nodal_position_gen (const unsigned &t, const unsigned &n, const unsigned &k, const unsigned &i) const |
double | dnodal_position_gen_dt (const unsigned &n, const unsigned &k, const unsigned &i) const |
double | dnodal_position_gen_dt (const unsigned &j, const unsigned &n, const unsigned &k, const unsigned &i) const |
virtual void | disable_ALE () |
virtual void | enable_ALE () |
virtual unsigned | required_nvalue (const unsigned &n) const |
unsigned | nnodal_position_type () const |
bool | has_hanging_nodes () const |
unsigned | nodal_dimension () const |
Return the required Eulerian dimension of the nodes in this element. More... | |
virtual Node * | construct_node (const unsigned &n) |
virtual Node * | construct_node (const unsigned &n, TimeStepper *const &time_stepper_pt) |
virtual Node * | construct_boundary_node (const unsigned &n) |
virtual Node * | construct_boundary_node (const unsigned &n, TimeStepper *const &time_stepper_pt) |
int | get_node_number (Node *const &node_pt) const |
virtual Node * | get_node_at_local_coordinate (const Vector< double > &s) const |
double | raw_nodal_value (const unsigned &n, const unsigned &i) const |
double | raw_nodal_value (const unsigned &t, const unsigned &n, const unsigned &i) const |
double | nodal_value (const unsigned &n, const unsigned &i) const |
double | nodal_value (const unsigned &t, const unsigned &n, const unsigned &i) const |
unsigned | dim () const |
virtual ElementGeometry::ElementGeometry | element_geometry () const |
Return the geometry type of the element (either Q or T usually). More... | |
virtual double | interpolated_x (const Vector< double > &s, const unsigned &i) const |
Return FE interpolated coordinate x[i] at local coordinate s. More... | |
virtual double | interpolated_x (const unsigned &t, const Vector< double > &s, const unsigned &i) const |
virtual void | interpolated_x (const Vector< double > &s, Vector< double > &x) const |
Return FE interpolated position x[] at local coordinate s as Vector. More... | |
virtual void | interpolated_x (const unsigned &t, const Vector< double > &s, Vector< double > &x) const |
virtual double | interpolated_dxdt (const Vector< double > &s, const unsigned &i, const unsigned &t) |
virtual void | interpolated_dxdt (const Vector< double > &s, const unsigned &t, Vector< double > &dxdt) |
unsigned | ngeom_data () const |
Data * | geom_data_pt (const unsigned &j) |
void | position (const Vector< double > &zeta, Vector< double > &r) const |
void | position (const unsigned &t, const Vector< double > &zeta, Vector< double > &r) const |
void | dposition_dt (const Vector< double > &zeta, const unsigned &t, Vector< double > &drdt) |
virtual double | zeta_nodal (const unsigned &n, const unsigned &k, const unsigned &i) const |
void | interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const |
void | locate_zeta (const Vector< double > &zeta, GeomObject *&geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false) |
virtual void | node_update () |
virtual void | identify_geometric_data (std::set< Data * > &geometric_data_pt) |
virtual double | s_min () const |
Min value of local coordinate. More... | |
virtual double | s_max () const |
Max. value of local coordinate. More... | |
double | size () const |
virtual double | compute_physical_size () const |
virtual void | point_output_data (const Vector< double > &s, Vector< double > &data) |
void | point_output (std::ostream &outfile, const Vector< double > &s) |
virtual unsigned | nplot_points_paraview (const unsigned &nplot) const |
virtual unsigned | nsub_elements_paraview (const unsigned &nplot) const |
void | output_paraview (std::ofstream &file_out, const unsigned &nplot) const |
virtual void | write_paraview_output_offset_information (std::ofstream &file_out, const unsigned &nplot, unsigned &counter) const |
virtual void | write_paraview_type (std::ofstream &file_out, const unsigned &nplot) const |
virtual void | write_paraview_offsets (std::ofstream &file_out, const unsigned &nplot, unsigned &offset_sum) const |
virtual void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const |
virtual void | output (const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, const SolutionFunctorBase &exact_soln) const |
Output a time-dependent exact solution over the element. More... | |
virtual void | get_s_plot (const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const |
virtual std::string | tecplot_zone_string (const unsigned &nplot) const |
virtual void | write_tecplot_zone_footer (std::ostream &outfile, const unsigned &nplot) const |
virtual void | write_tecplot_zone_footer (FILE *file_pt, const unsigned &nplot) const |
virtual unsigned | nplot_points (const unsigned &nplot) const |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm) |
Calculate the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm) |
Calculate the norm of the error and that of the exact solution. More... | |
virtual void | compute_error (FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, Vector< double > &error, Vector< double > &norm) |
virtual void | compute_abs_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error) |
void | integrate_fct (FiniteElement::SteadyExactSolutionFctPt integrand_fct_pt, Vector< double > &integral) |
Integrate Vector-valued function over element. More... | |
void | integrate_fct (FiniteElement::UnsteadyExactSolutionFctPt integrand_fct_pt, const double &time, Vector< double > &integral) |
Integrate Vector-valued time-dep function over element. More... | |
virtual void | build_face_element (const int &face_index, FaceElement *face_element_pt) |
virtual unsigned | get_bulk_node_number (const int &face_index, const unsigned &i) const |
virtual int | face_outer_unit_normal_sign (const int &face_index) const |
Get the sign of the outer unit normal on the face given by face_index. More... | |
virtual unsigned | nnode_on_face () const |
void | face_node_number_error_check (const unsigned &i) const |
Range check for face node numbers. More... | |
virtual CoordinateMappingFctPt | face_to_bulk_coordinate_fct_pt (const int &face_index) const |
virtual BulkCoordinateDerivativesFctPt | bulk_coordinate_derivatives_fct_pt (const int &face_index) const |
![]() | |
GeneralisedElement () | |
Constructor: Initialise all pointers and all values to zero. More... | |
virtual | ~GeneralisedElement () |
Virtual destructor to clean up any memory allocated by the object. More... | |
GeneralisedElement (const GeneralisedElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeneralisedElement &)=delete |
Broken assignment operator. More... | |
Data *& | internal_data_pt (const unsigned &i) |
Return a pointer to i-th internal data object. More... | |
Data *const & | internal_data_pt (const unsigned &i) const |
Return a pointer to i-th internal data object (const version) More... | |
Data *& | external_data_pt (const unsigned &i) |
Return a pointer to i-th external data object. More... | |
Data *const & | external_data_pt (const unsigned &i) const |
Return a pointer to i-th external data object (const version) More... | |
unsigned long | eqn_number (const unsigned &ieqn_local) const |
int | local_eqn_number (const unsigned long &ieqn_global) const |
unsigned | add_external_data (Data *const &data_pt, const bool &fd=true) |
bool | external_data_fd (const unsigned &i) const |
void | exclude_external_data_fd (const unsigned &i) |
void | include_external_data_fd (const unsigned &i) |
void | flush_external_data () |
Flush all external data. More... | |
void | flush_external_data (Data *const &data_pt) |
Flush the object addressed by data_pt from the external data array. More... | |
unsigned | ninternal_data () const |
Return the number of internal data objects. More... | |
unsigned | nexternal_data () const |
Return the number of external data objects. More... | |
unsigned | ndof () const |
Return the number of equations/dofs in the element. More... | |
void | dof_vector (const unsigned &t, Vector< double > &dof) |
Return the vector of dof values at time level t. More... | |
void | dof_pt_vector (Vector< double * > &dof_pt) |
Return the vector of pointers to dof values. More... | |
void | set_internal_data_time_stepper (const unsigned &i, TimeStepper *const &time_stepper_pt, const bool &preserve_existing_data) |
void | assign_internal_eqn_numbers (unsigned long &global_number, Vector< double * > &Dof_pt) |
void | describe_dofs (std::ostream &out, const std::string ¤t_string) const |
void | add_internal_value_pt_to_map (std::map< unsigned, double * > &map_of_value_pt) |
virtual void | assign_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual void | complete_setup_of_dependencies () |
virtual void | get_residuals (Vector< double > &residuals) |
virtual void | get_jacobian (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
virtual void | get_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
virtual void | get_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | get_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
virtual void | get_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
virtual void | get_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
virtual void | get_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
virtual void | get_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
virtual void | get_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
virtual void | compute_norm (Vector< double > &norm) |
![]() | |
GeomObject () | |
Default constructor. More... | |
GeomObject (const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim) | |
GeomObject (const unsigned &nlagrangian, const unsigned &ndim, TimeStepper *time_stepper_pt) | |
GeomObject (const GeomObject &dummy)=delete | |
Broken copy constructor. More... | |
void | operator= (const GeomObject &)=delete |
Broken assignment operator. More... | |
virtual | ~GeomObject () |
(Empty) destructor More... | |
unsigned | nlagrangian () const |
Access function to # of Lagrangian coordinates. More... | |
unsigned | ndim () const |
Access function to # of Eulerian coordinates. More... | |
void | set_nlagrangian_and_ndim (const unsigned &n_lagrangian, const unsigned &n_dim) |
Set # of Lagrangian and Eulerian coordinates. More... | |
TimeStepper *& | time_stepper_pt () |
TimeStepper * | time_stepper_pt () const |
virtual void | position (const double &t, const Vector< double > &zeta, Vector< double > &r) const |
virtual void | dposition (const Vector< double > &zeta, DenseMatrix< double > &drdzeta) const |
virtual void | d2position (const Vector< double > &zeta, RankThreeTensor< double > &ddrdzeta) const |
virtual void | d2position (const Vector< double > &zeta, Vector< double > &r, DenseMatrix< double > &drdzeta, RankThreeTensor< double > &ddrdzeta) const |
![]() | |
RefineableElement () | |
virtual | ~RefineableElement () |
Destructor, delete the allocated storage for the hanging equations. More... | |
RefineableElement (const RefineableElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const RefineableElement &)=delete |
Broken assignment operator. More... | |
Tree * | tree_pt () |
Access function: Pointer to quadtree representation of this element. More... | |
void | set_tree_pt (Tree *my_tree_pt) |
Set pointer to quadtree representation of this element. More... | |
virtual unsigned | required_nsons () const |
bool | refinement_is_enabled () |
Flag to indicate suppression of any refinement. More... | |
void | disable_refinement () |
Suppress of any refinement for this element. More... | |
void | enable_refinement () |
Emnable refinement for this element. More... | |
template<class ELEMENT > | |
void | split (Vector< ELEMENT * > &son_pt) const |
int | local_hang_eqn (Node *const &node_pt, const unsigned &i) |
virtual void | build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt, bool &was_already_built, std::ofstream &new_nodes_file)=0 |
void | set_refinement_level (const int &refine_level) |
Set the refinement level. More... | |
unsigned | refinement_level () const |
Return the Refinement level. More... | |
void | select_for_refinement () |
Select the element for refinement. More... | |
void | deselect_for_refinement () |
Deselect the element for refinement. More... | |
void | select_sons_for_unrefinement () |
Unrefinement will be performed by merging the four sons of this element. More... | |
void | deselect_sons_for_unrefinement () |
bool | to_be_refined () |
Has the element been selected for refinement? More... | |
bool | sons_to_be_unrefined () |
Has the element been selected for unrefinement? More... | |
virtual void | rebuild_from_sons (Mesh *&mesh_pt)=0 |
virtual void | unbuild () |
virtual void | deactivate_element () |
virtual bool | nodes_built () |
Return true if all the nodes have been built, false if not. More... | |
long | number () const |
Element number (for debugging/plotting) More... | |
void | set_number (const long &mynumber) |
Set element number (for debugging/plotting) More... | |
virtual unsigned | ncont_interpolated_values () const =0 |
virtual Node * | interpolating_node_pt (const unsigned &n, const int &value_id) |
virtual double | local_one_d_fraction_of_interpolating_node (const unsigned &n1d, const unsigned &i, const int &value_id) |
virtual Node * | get_interpolating_node_at_local_coordinate (const Vector< double > &s, const int &value_id) |
virtual unsigned | ninterpolating_node (const int &value_id) |
virtual unsigned | ninterpolating_node_1d (const int &value_id) |
virtual void | interpolating_basis (const Vector< double > &s, Shape &psi, const int &value_id) const |
virtual void | check_integrity (double &max_error)=0 |
void | identify_field_data_for_interactions (std::set< std::pair< Data *, unsigned >> &paired_field_data) |
void | assign_nodal_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual RefineableElement * | root_element_pt () |
virtual RefineableElement * | father_element_pt () const |
Return a pointer to the father element. More... | |
void | get_father_at_refinement_level (unsigned &refinement_level, RefineableElement *&father_at_reflevel_pt) |
virtual void | initial_setup (Tree *const &adopted_father_pt=0, const unsigned &initial_p_order=0) |
virtual void | pre_build (Mesh *&mesh_pt, Vector< Node * > &new_node_pt) |
Pre-build the element. More... | |
virtual void | setup_hanging_nodes (Vector< std::ofstream * > &output_stream) |
virtual void | further_setup_hanging_nodes () |
void | get_dresidual_dnodal_coordinates (RankThreeTensor< double > &dresidual_dnodal_coordinates) |
unsigned | nshape_controlling_nodes () |
std::map< Node *, unsigned > | shape_controlling_node_lookup () |
![]() | |
ElementWithZ2ErrorEstimator () | |
Default empty constructor. More... | |
ElementWithZ2ErrorEstimator (const ElementWithZ2ErrorEstimator &)=delete | |
Broken copy constructor. More... | |
void | operator= (const ElementWithZ2ErrorEstimator &)=delete |
Broken assignment operator. More... | |
virtual unsigned | ncompound_fluxes () |
virtual void | compute_exact_Z2_error (std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_flux_pt, double &error, double &norm) |
virtual void | get_Z2_compound_flux_indices (Vector< unsigned > &flux_index) |
virtual unsigned | nvertex_node () const =0 |
Number of vertex nodes in the element. More... | |
virtual Node * | vertex_node_pt (const unsigned &j) const =0 |
virtual unsigned | nrecovery_order ()=0 |
Order of recovery shape functions. More... | |
virtual double | geometric_jacobian (const Vector< double > &x) |
Private Member Functions | |
void | fill_in_generic_residual_contribution_helmholtz (Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag) |
Additional Inherited Members | |
![]() | |
typedef void(* | PMLHelmholtzSourceFctPt) (const Vector< double > &x, std::complex< double > &f) |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
![]() | |
static double & | max_integrity_tolerance () |
Max. allowed discrepancy in element integrity check. More... | |
![]() | |
static BermudezPMLMapping | Default_pml_mapping |
![]() | |
static double | Tolerance_for_singular_jacobian = 1.0e-16 |
Tolerance below which the jacobian is considered singular. More... | |
static bool | Accept_negative_jacobian = false |
static bool | Suppress_output_while_checking_for_inverted_elements |
![]() | |
static bool | Suppress_warning_about_repeated_internal_data |
static bool | Suppress_warning_about_repeated_external_data = true |
static double | Default_fd_jacobian_step = 1.0e-8 |
![]() | |
virtual double | dshape_and_dtest_eulerian_helmholtz (const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
virtual double | dshape_and_dtest_eulerian_at_knot_helmholtz (const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0 |
![]() | |
template<unsigned DIM> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | invert_jacobian_mapping (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
virtual double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
double | local_to_eulerian_mapping (const DShape &dpsids, DenseMatrix< double > &inverse_jacobian) const |
virtual void | dJ_eulerian_dnodal_coordinates (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<unsigned DIM> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
virtual void | d_dshape_eulerian_dnodal_coordinates (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<unsigned DIM> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
virtual void | transform_derivatives (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
void | transform_derivatives_diagonal (const DenseMatrix< double > &inverse_jacobian, DShape &dbasis) const |
virtual void | transform_second_derivatives (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<unsigned DIM> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
void | fill_in_jacobian_from_nodal_by_fd (DenseMatrix< double > &jacobian) |
virtual void | update_before_nodal_fd () |
virtual void | reset_after_nodal_fd () |
virtual void | update_in_nodal_fd (const unsigned &i) |
virtual void | reset_in_nodal_fd (const unsigned &i) |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
Zero-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
One-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
Two-d specialisation of function to calculate inverse of jacobian mapping. More... | |
template<> | |
double | invert_jacobian (const DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | dJ_eulerian_dnodal_coordinates_templated_helper (const DenseMatrix< double > &jacobian, const DShape &dpsids, DenseMatrix< double > &djacobian_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | d_dshape_eulerian_dnodal_coordinates_templated_helper (const double &det_jacobian, const DenseMatrix< double > &jacobian, const DenseMatrix< double > &djacobian_dX, const DenseMatrix< double > &inverse_jacobian, const DShape &dpsids, RankFourTensor< double > &d_dpsidx_dX) const |
template<> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_template (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
template<> | |
void | transform_second_derivatives_diagonal (const DenseMatrix< double > &jacobian, const DenseMatrix< double > &inverse_jacobian, const DenseMatrix< double > &jacobian2, DShape &dbasis, DShape &d2basis) const |
![]() | |
unsigned | add_internal_data (Data *const &data_pt, const bool &fd=true) |
bool | internal_data_fd (const unsigned &i) const |
void | exclude_internal_data_fd (const unsigned &i) |
void | include_internal_data_fd (const unsigned &i) |
void | clear_global_eqn_numbers () |
void | add_global_eqn_numbers (std::deque< unsigned long > const &global_eqn_numbers, std::deque< double * > const &global_dof_pt) |
virtual void | assign_internal_and_external_local_eqn_numbers (const bool &store_local_dof_pt) |
virtual void | assign_additional_local_eqn_numbers () |
int | internal_local_eqn (const unsigned &i, const unsigned &j) const |
int | external_local_eqn (const unsigned &i, const unsigned &j) |
void | fill_in_jacobian_from_internal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_internal_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_external_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
void | fill_in_jacobian_from_external_by_fd (DenseMatrix< double > &jacobian, const bool &fd_all_data=false) |
virtual void | update_before_internal_fd () |
virtual void | reset_after_internal_fd () |
virtual void | update_in_internal_fd (const unsigned &i) |
virtual void | reset_in_internal_fd (const unsigned &i) |
virtual void | update_before_external_fd () |
virtual void | reset_after_external_fd () |
virtual void | update_in_external_fd (const unsigned &i) |
virtual void | reset_in_external_fd (const unsigned &i) |
virtual void | fill_in_contribution_to_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &mass_matrix) |
virtual void | fill_in_contribution_to_jacobian_and_mass_matrix (Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix) |
virtual void | fill_in_contribution_to_dresiduals_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam) |
virtual void | fill_in_contribution_to_djacobian_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam) |
virtual void | fill_in_contribution_to_djacobian_and_dmass_matrix_dparameter (double *const ¶meter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam, DenseMatrix< double > &dmass_matrix_dparam) |
virtual void | fill_in_contribution_to_hessian_vector_products (Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product) |
virtual void | fill_in_contribution_to_inner_products (Vector< std::pair< unsigned, unsigned >> const &history_index, Vector< double > &inner_product) |
virtual void | fill_in_contribution_to_inner_product_vectors (Vector< unsigned > const &history_index, Vector< Vector< double >> &inner_product_vector) |
![]() | |
void | assemble_local_to_eulerian_jacobian (const DShape &dpsids, DenseMatrix< double > &jacobian) const |
void | assemble_local_to_eulerian_jacobian2 (const DShape &d2psids, DenseMatrix< double > &jacobian2) const |
void | assemble_eulerian_base_vectors (const DShape &dpsids, DenseMatrix< double > &interpolated_G) const |
double | local_to_eulerian_mapping_diagonal (const DShape &dpsids, DenseMatrix< double > &jacobian, DenseMatrix< double > &inverse_jacobian) const |
void | assign_hanging_local_eqn_numbers (const bool &store_local_dof_pt) |
Assign the local equation numbers for hanging node variables. More... | |
virtual void | fill_in_jacobian_from_nodal_by_fd (Vector< double > &residuals, DenseMatrix< double > &jacobian) |
![]() | |
static void | check_value_id (const int &n_continuously_interpolated_values, const int &value_id) |
![]() | |
double * | Alpha_pt |
Pointer to wavenumber complex shift. More... | |
PMLHelmholtzSourceFctPt | Source_fct_pt |
Pointer to source function: More... | |
double * | K_squared_pt |
Pointer to wave number (must be set!) More... | |
PMLMapping * | Pml_mapping_pt |
![]() | |
bool | Pml_is_enabled |
Boolean indicating if element is used in pml mode. More... | |
std::vector< bool > | Pml_direction_active |
Vector< double > | Pml_inner_boundary |
Vector< double > | Pml_outer_boundary |
![]() | |
MacroElement * | Macro_elem_pt |
Pointer to the element's macro element (NULL by default) More... | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
![]() | |
Tree * | Tree_pt |
A pointer to a general tree object. More... | |
unsigned | Refine_level |
Refinement level. More... | |
bool | To_be_refined |
Flag for refinement. More... | |
bool | Refinement_is_enabled |
Flag to indicate suppression of any refinement. More... | |
bool | Sons_to_be_unrefined |
Flag for unrefinement. More... | |
long | Number |
Global element number – for plotting/validation purposes. More... | |
![]() | |
static double | Default_Physical_Constant_Value |
Static default value for the physical constants (initialised to zero) More... | |
![]() | |
static const unsigned | Default_Initial_Nvalue = 0 |
Default value for the number of values at a node. More... | |
static const double | Node_location_tolerance = 1.0e-14 |
static const unsigned | N2deriv [] = {0, 1, 3, 6} |
![]() | |
static DenseMatrix< double > | Dummy_matrix |
static std::deque< double * > | Dof_pt_deque |
![]() | |
static double | Max_integrity_tolerance = 1.0e-8 |
Max. allowed discrepancy in element integrity check. More... | |
//////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// Refineable version of PMLHelmholtz equations
|
inline |
Constructor, simply call other constructors.
|
delete |
Broken copy constructor.
|
privatevirtual |
Add element's contribution to elemental residual vector and/or Jacobian matrix flag=1: compute both flag=0: compute only residual vector
Compute element residual Vector and/or element Jacobian matrix
flag=1: compute both flag=0: compute only residual Vector
Pure version without hanging nodes
Reimplemented from oomph::PMLHelmholtzEquations< DIM >.
References DIM, i, imag(), J, j, k, m, m2(), oomph::HangInfo::master_node_pt(), oomph::HangInfo::master_weight(), oomph::HangInfo::nmaster(), TestProblem::source(), Eigen::test, w, and oomph::QuadTreeNames::W.
|
inlinevirtual |
Further build: Copy source function pointer from father element.
Reimplemented from oomph::RefineableElement.
References oomph::RefineableElement::father_element_pt(), oomph::PMLHelmholtzEquations< DIM >::source_fct_pt(), and oomph::PMLHelmholtzEquations< DIM >::Source_fct_pt.
|
inlinevirtual |
Get the function value u in Vector. Note: Given the generality of the interface (this function is usually called from black-box documentation or interpolation routines), the values Vector sets its own size in here.
Implements oomph::RefineableElement.
References oomph::RefineablePMLHelmholtzEquations< DIM >::get_interpolated_values(), OOMPH_EXCEPTION_LOCATION, s, oomph::Global_string_for_annotation::string(), and plotPSD::t.
|
inlinevirtual |
Get the function value u in Vector. Note: Given the generality of the interface (this function is usually called from black-box documentation or interpolation routines), the values Vector sets its own size in here.
Reimplemented from oomph::RefineableElement.
References oomph::FiniteElement::nnode(), oomph::FiniteElement::nodal_value(), s, oomph::FiniteElement::shape(), and oomph::PMLHelmholtzEquations< DIM >::u_index_helmholtz().
Referenced by oomph::RefineablePMLHelmholtzEquations< DIM >::get_interpolated_values().
|
inlinevirtual |
Get 'flux' for Z2 error recovery: Complex flux from PMLHelmholtz equations, strung together
Implements oomph::ElementWithZ2ErrorEstimator.
References DIM, ProblemParameters::flux(), oomph::PMLHelmholtzEquations< DIM >::get_flux(), and i.
|
inlinevirtual |
Broken assignment operator.
Number of 'flux' terms for Z2 error estimation
Implements oomph::ElementWithZ2ErrorEstimator.
References DIM.