![]() |
|
#include <element_with_external_element.h>
Public Member Functions | |
ElementWithExternalElement () | |
virtual | ~ElementWithExternalElement () |
The destructor, clean up any allocated memory. More... | |
ElementWithExternalElement (const ElementWithExternalElement &)=delete | |
Broken copy constructor. More... | |
void | operator= (const ElementWithExternalElement &)=delete |
Broken assignment operator. More... | |
bool | storage_has_been_allocated () const |
Helper function to check if storage has actually been allocated. More... | |
FiniteElement *& | external_element_pt (const unsigned &interaction_index, const unsigned &ipt) |
FiniteElement *const & | external_element_pt (const unsigned &interaction_index, const unsigned &ipt) const |
Access function to source element, const version. More... | |
Vector< double > & | external_element_local_coord (const unsigned &interaction_index, const unsigned &ipt) |
Vector< double > const & | external_element_local_coord (const unsigned &interaction_index, const unsigned &ipt) const |
Access function to get source element's coords, const version. More... | |
void | output_external_elements (std::ostream &outfile, const unsigned &interaction_index) |
void | initialise_external_element_storage () |
void | flush_all_external_element_storage () |
Flush the storage for external elements. More... | |
void | set_ninteraction (const unsigned &n_interaction) |
unsigned | ninteraction () const |
Return the number of interactions in the element. More... | |
virtual void | identify_all_field_data_for_external_interaction (Vector< std::set< FiniteElement * >> const &external_elements_pt, std::set< std::pair< Data *, unsigned >> &paired_interaction_data) |
virtual void | identify_all_geometric_data_for_external_interaction (Vector< std::set< FiniteElement * >> const &external_elements_pt, std::set< Data * > &external_geometric_data_pt) |
unsigned | nexternal_interaction_field_data () const |
Vector< Data * > | external_interaction_field_data_pt () const |
unsigned | nexternal_interaction_geometric_data () const |
bool | add_external_geometric_data () |
Are we including external geometric data in the element's Jacobian. More... | |
bool | add_external_interaction_data () |
Are we including external data in the element's Jacobian. More... | |
Vector< Data * > | external_interaction_geometric_data_pt () const |
void | ignore_external_geometric_data () |
void | ignore_external_interaction_data () |
void | include_external_geometric_data () |
void | include_external_interaction_data () |
bool | external_geometric_data_is_included () const |
void | describe_local_dofs (std::ostream &out, const std::string &curr_string) const |
![]() | |
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 | assign_nodal_local_eqn_numbers (const bool &store_local_dof_pt) |
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 | get_dresidual_dnodal_coordinates (RankThreeTensor< double > &dresidual_dnodal_coordinates) |
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 unsigned | nvertex_node () const |
virtual Node * | vertex_node_pt (const unsigned &j) const |
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_field_data_for_interactions (std::set< std::pair< Data *, unsigned >> &paired_field_data) |
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 unsigned | nscalar_paraview () const |
virtual void | scalar_value_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const |
virtual void | scalar_value_fct_paraview (std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) 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 std::string | scalar_name_paraview (const unsigned &i) const |
virtual void | output (std::ostream &outfile) |
virtual void | output (std::ostream &outfile, const unsigned &n_plot) |
virtual void | output (const unsigned &t, std::ostream &outfile, const unsigned &n_plot) const |
virtual void | output (FILE *file_pt) |
virtual void | output (FILE *file_pt, const unsigned &n_plot) |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) |
Output an exact solution over the element. More... | |
virtual void | output_fct (std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) |
Output a time-dependent exact solution over the element. More... | |
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, double &error, double &norm) |
virtual void | compute_error (std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, 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 | self_test () |
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) |
virtual void | compute_norm (double &norm) |
virtual unsigned | ndof_types () const |
virtual void | get_dof_numbers_for_unknowns (std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const |
![]() | |
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 |
Protected Attributes | |
bool | Add_external_interaction_data |
Boolean flag to indicate whether to include the external data. More... | |
bool | Add_external_geometric_data |
Boolean flag to indicate whether to include the external geometric data. More... | |
Data ** | External_interaction_field_data_pt |
Data ** | External_interaction_geometric_data_pt |
![]() | |
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 |
Private Member Functions | |
void | check_storage_allocated () const |
Helper function to check that storage has actually been allocated. More... | |
void | range_check (const unsigned &interaction_index, const unsigned &ipt) const |
Helper function for range checking in the access functions. More... | |
Private Attributes | |
unsigned | Ninteraction |
Number of interactions. More... | |
unsigned | Nintpt |
Number of intergation point in the element. More... | |
unsigned | Nexternal_element_storage |
unsigned | Nexternal_interaction_field_data |
Number of external interaction field data. More... | |
unsigned | Nexternal_interaction_geometric_data |
Number of external interaction geometric data. More... | |
FiniteElement ** | External_element_pt |
Vector< double > * | External_element_local_coord |
unsigned * | External_interaction_field_data_index |
int * | External_interaction_field_data_local_eqn |
unsigned * | External_interaction_geometric_data_index |
int * | External_interaction_geometric_data_local_eqn |
Additional Inherited Members | |
![]() | |
typedef void(* | SteadyExactSolutionFctPt) (const Vector< double > &, Vector< double > &) |
typedef void(* | UnsteadyExactSolutionFctPt) (const double &, const Vector< double > &, Vector< double > &) |
![]() | |
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 |
![]() | |
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 |
This is a base class for all elements that require external sources (e.g. FSI, multi-domain problems such as Helmholtz, multi-mesh Boussinesq convection, etc.). It provides storage for the source element and corresponding local coordinate at each integration point, and allows use of locate_zeta to obtain such source elements. In addition separate storage is allocated for all field data in the external elements and all geometric data that can affect the field data in the external elements. Generic finite difference routines are provided to calculate entries in the Jacobian from the data of the external elements.
|
inline |
Constructor. Initialise member data and pointers to data associated with the external elements to zero.
|
virtual |
The destructor, clean up any allocated memory.
Destructor, clean up any memory allocated for the equation numbering schemes and storage for the external elements
References External_interaction_field_data_index, External_interaction_field_data_local_eqn, External_interaction_field_data_pt, External_interaction_geometric_data_index, External_interaction_geometric_data_local_eqn, External_interaction_geometric_data_pt, and flush_all_external_element_storage().
|
delete |
Broken copy constructor.
|
inline |
Are we including external geometric data in the element's Jacobian.
References Add_external_geometric_data.
Referenced by oomph::ProjectableElement< ELEMENT >::enable_projection().
|
inline |
Are we including external data in the element's Jacobian.
References Add_external_interaction_data.
Referenced by oomph::ProjectableElement< ELEMENT >::enable_projection().
|
protected |
Assign the local equation numbers for those Data values involved in the external interactions that affect the residuals of the element
This function determines the all Data in external elemetns that affects the residuals of the element and adds their global equation numbers to the local-to-global look-up scheme. Note that we only include Data items into the element's External_interaction_data if they are not already included in the element's nodal positional Data, its internal or external Data.
References Add_external_geometric_data, Add_external_interaction_data, oomph::GeneralisedElement::add_global_eqn_numbers(), oomph::GeneralisedElement::Dof_pt_deque, oomph::Data::eqn_number(), oomph::GeneralisedElement::eqn_number(), oomph::GeneralisedElement::external_data_pt(), external_element_pt(), External_interaction_field_data_index, External_interaction_field_data_local_eqn, External_interaction_field_data_pt, External_interaction_geometric_data_index, External_interaction_geometric_data_local_eqn, External_interaction_geometric_data_pt, oomph::FiniteElement::geom_data_pt(), i, identify_all_field_data_for_external_interaction(), identify_all_geometric_data_for_external_interaction(), oomph::FiniteElement::integral_pt(), oomph::GeneralisedElement::internal_data_pt(), oomph::Data::Is_pinned, j, oomph::GeneralisedElement::local_eqn_number(), n, oomph::GeneralisedElement::ndof(), oomph::GeneralisedElement::nexternal_data(), nexternal_interaction_field_data(), Nexternal_interaction_field_data, nexternal_interaction_geometric_data(), Nexternal_interaction_geometric_data, oomph::FiniteElement::ngeom_data(), ninteraction(), oomph::GeneralisedElement::ninternal_data(), oomph::FiniteElement::nnode(), oomph::FiniteElement::node_pt(), oomph::Data::nvalue(), oomph::Integral::nweight(), set(), and oomph::SolidNode::variable_position_pt().
Referenced by assign_internal_and_external_local_eqn_numbers().
|
inlineprotectedvirtual |
Overload the assign internal and external local equation number scheme so that the interaction data is taken into account
Reimplemented from oomph::GeneralisedElement.
References assign_external_interaction_data_local_eqn_numbers(), and oomph::GeneralisedElement::assign_internal_and_external_local_eqn_numbers().
|
inlineprivate |
Helper function to check that storage has actually been allocated.
References External_element_local_coord, External_element_pt, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by external_element_local_coord(), and external_element_pt().
|
virtual |
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(...)
Reimplemented from oomph::FiniteElement.
Reimplemented in oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >, oomph::ProjectableElement< ELEMENT >, oomph::ProjectableElement< FVK_ELEMENT >, oomph::ProjectableElement< AXISYM_LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< UNSTEADY_HEAT_ELEMENT >, oomph::ProjectableElement< LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< CROUZEIX_RAVIART_ELEMENT >, oomph::ProjectableElement< HELMHOLTZ_ELEMENT >, oomph::ProjectableElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >, oomph::ProjectableElement< TAYLOR_HOOD_ELEMENT >, oomph::ProjectableElement< PVD_ELEMENT >, oomph::ProjectableElement< ADR_ELEMENT >, oomph::ProjectableElement< DARCY_ELEMENT >, oomph::ProjectableElement< POISSON_ELEMENT >, oomph::ProjectableElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >, oomph::ProjectableElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< LINEAR_HEAT_AND_ELAST_ELEMENT >, oomph::FSIWallElement, and oomph::FaceElementAsGeomObject< ELEMENT >.
References oomph::Data::describe_dofs(), oomph::GeneralisedElement::describe_local_dofs(), External_interaction_field_data_pt, External_interaction_geometric_data_pt, i, nexternal_interaction_field_data(), nexternal_interaction_geometric_data(), out(), and oomph::Global_string_for_annotation::string().
Referenced by oomph::FaceElementAsGeomObject< ELEMENT >::describe_local_dofs(), oomph::ProjectableElement< ELEMENT >::describe_local_dofs(), and oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::describe_local_dofs().
|
inline |
Access function to get source element's local coords for specified interaction index at specified integration point
References check_storage_allocated(), External_element_local_coord, Nintpt, and range_check().
Referenced by oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), oomph::FSI_functions::doc_fsi(), oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::FSIWallElement::fluid_load_vector(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::get_body_force_nst(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_dwind_adv_diff_dexternal_element_data(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_pressure(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::get_pressure_fvk(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_traction(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_wind_adv_diff(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::output(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), output_external_elements(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::output_integration_points(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::residual_for_projection(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::residual_for_projection(), and oomph::ProjectableElement< ELEMENT >::residual_for_projection().
|
inline |
Access function to get source element's coords, const version.
References check_storage_allocated(), External_element_local_coord, Nintpt, and range_check().
|
inline |
Access function to source element for specified interaction index at specified integration point
References check_storage_allocated(), External_element_pt, Nintpt, and range_check().
Referenced by assign_external_interaction_data_local_eqn_numbers(), oomph::Multi_domain_functions::aux_setup_multi_domain_interaction(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::contribution_to_total_porous_flux(), oomph::FSI_functions::doc_fsi(), oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::FSIWallElement::fluid_load_vector(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::get_body_force_nst(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_dwind_adv_diff_dexternal_element_data(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_pressure(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::get_pressure_fvk(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::get_traction(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::get_wind_adv_diff(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::global_flux_contribution_from_helmholtz(), oomph::Multi_domain_functions::locate_zeta_for_local_coordinates(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::node_update_adjacent_fluid_elements(), oomph::FSIWallElement::node_update_adjacent_fluid_elements(), oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::output(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::output(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::output(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::output(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::output(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::output_adjacent_fluid_elements(), output_external_elements(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::output_integration_points(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::refineable_fill_in_generic_contribution_to_residuals_fsi_displ_lagr_multiplier(), oomph::ProjectableAxisymmetricPoroelasticityElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >::residual_for_projection(), oomph::ProjectableDarcyElement< DARCY_ELEMENT >::residual_for_projection(), oomph::ProjectableElement< ELEMENT >::residual_for_projection(), and MortaringValidationProblem< ELEMENT, NON_MORTAR_ELEMENT >::setup_multi_domain_interaction().
|
inline |
Access function to source element, const version.
References check_storage_allocated(), External_element_pt, Nintpt, and range_check().
|
inline |
Is the external geometric data taken into account when forming the Jacobian?
References Add_external_geometric_data.
Referenced by RefineableQAxisymCrouzeixRaviartBoussinesqElement::further_build(), and oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::further_build().
|
inline |
Return vector of pointers to the field Data objects that affect the interactions on the element.
References External_interaction_field_data_pt, i, and nexternal_interaction_field_data().
Referenced by oomph::GeneralisedElement::assign_local_eqn_numbers(), and oomph::FSI_functions::doc_fsi().
|
inline |
Return vector of pointers to the geometric Data objects that affect the interactions on the element.
References External_interaction_geometric_data_pt, i, and nexternal_interaction_geometric_data().
Referenced by oomph::GeneralisedElement::assign_local_eqn_numbers(), and oomph::FSI_functions::doc_fsi().
|
inlineprotectedvirtual |
Fill in the element's contribution to the Jacobian matrix and the residual vector: Done by finite differencing the residual vector w.r.t. all nodal, internal, external and load Data.
Reimplemented from oomph::GeneralisedElement.
Reimplemented in oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >, oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >, oomph::RefineableFSISolidTractionElement< ELEMENT, DIM >, oomph::FSISolidTractionElement< ELEMENT, DIM >, oomph::FSIDiagHermiteShellElement, oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >, oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >, oomph::AdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >, oomph::NavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >, oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >, oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >, oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >, oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >, oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >, oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >, RefineableLinearisedQCrouzeixRaviartMultiDomainElement, RefineableLinearisedQTaylorHoodMultiDomainElement, LinearisedQCrouzeixRaviartMultiDomainElement, LinearisedQTaylorHoodMultiDomainElement, RefineableLinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement, RefineableLinearisedAxisymmetricQTaylorHoodMultiDomainElement, LinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement, LinearisedAxisymmetricQTaylorHoodMultiDomainElement, oomph::ProjectableElement< ELEMENT >, oomph::ProjectableElement< FVK_ELEMENT >, oomph::ProjectableElement< AXISYM_LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< UNSTEADY_HEAT_ELEMENT >, oomph::ProjectableElement< LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< CROUZEIX_RAVIART_ELEMENT >, oomph::ProjectableElement< HELMHOLTZ_ELEMENT >, oomph::ProjectableElement< AXISYMMETRIC_POROELASTICITY_ELEMENT >, oomph::ProjectableElement< TAYLOR_HOOD_ELEMENT >, oomph::ProjectableElement< PVD_ELEMENT >, oomph::ProjectableElement< ADR_ELEMENT >, oomph::ProjectableElement< DARCY_ELEMENT >, oomph::ProjectableElement< POISSON_ELEMENT >, oomph::ProjectableElement< FOURIER_DECOMPOSED_HELMHOLTZ_ELEMENT >, oomph::ProjectableElement< TIME_HARMONIC_LINEAR_ELAST_ELEMENT >, oomph::ProjectableElement< LINEAR_HEAT_AND_ELAST_ELEMENT >, oomph::FSIWallElement, and oomph::FaceElementAsGeomObject< ELEMENT >.
References oomph::GeneralisedElement::fill_in_contribution_to_residuals(), oomph::GeneralisedElement::fill_in_jacobian_from_external_by_fd(), fill_in_jacobian_from_external_interaction_by_fd(), oomph::GeneralisedElement::fill_in_jacobian_from_internal_by_fd(), oomph::FiniteElement::fill_in_jacobian_from_nodal_by_fd(), oomph::GeneralisedElement::get_residuals(), and oomph::GeneralisedElement::ndof().
Referenced by QAxisymCrouzeixRaviartElementWithExternalElement::fill_in_contribution_to_jacobian(), QAxisymAdvectionDiffusionElementWithExternalElement::fill_in_contribution_to_jacobian(), QCrouzeixRaviartElementWithTwoExternalElement< DIM >::fill_in_contribution_to_jacobian(), QAdvectionDiffusionElementWithExternalElement< DIM >::fill_in_contribution_to_jacobian(), oomph::NavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_contribution_to_jacobian(), and oomph::AdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::fill_in_contribution_to_jacobian().
|
inlineprotected |
Calculate the contributions to the jacobian from all enternal interaction degrees of freedom (geometric and field data) in the external element using finite differences. This version computes the residuals vector before calculating the jacobian terms.
References fill_in_jacobian_from_external_interaction_by_fd(), oomph::GeneralisedElement::get_residuals(), and oomph::GeneralisedElement::ndof().
|
inlineprotected |
Calculate the contributions to the jacobian from all external interaction degrees of freedom (geometric and field data) in the external element using finite differences. This version of the function assumes that the residuals vector has already been calculated.
References fill_in_jacobian_from_external_interaction_field_by_fd(), and fill_in_jacobian_from_external_interaction_geometric_by_fd().
Referenced by oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::FSIHermiteBeamElement::fill_in_contribution_to_jacobian(), fill_in_contribution_to_jacobian(), oomph::FSIWallElement::fill_in_contribution_to_jacobian(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::fill_in_contribution_to_jacobian(), oomph::FSIDiagHermiteShellElement::fill_in_contribution_to_jacobian(), oomph::FSISolidTractionElement< ELEMENT, DIM >::fill_in_contribution_to_jacobian(), oomph::RefineableFSISolidTractionElement< ELEMENT, DIM >::fill_in_contribution_to_jacobian(), oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::fill_in_contribution_to_jacobian(), oomph::RefineableFSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::fill_in_contribution_to_jacobian(), and fill_in_jacobian_from_external_interaction_by_fd().
|
inlineprotected |
Calculate the contributions to the jacobian from the enternal interaction degrees of freedom associated with fields interpolated by the external element using finite differences. This version computes the residuals vector before calculating the jacobian terms.
References fill_in_jacobian_from_external_interaction_field_by_fd(), oomph::GeneralisedElement::get_residuals(), and oomph::GeneralisedElement::ndof().
|
protected |
Calculate the contributions to the jacobian from the external interaction degrees of freedom associated with fields interpolated by the external element using finite differences. This version of the function assumes that the residuals vector has already been calculated.
This function calculates the entries of Jacobian matrix, used in the Newton method, associated with the external interaction degrees of freedom for external fields. It does this using finite differences, rather than an analytical formulation, so can be done in total generality.
References oomph::GeneralisedElement::Default_fd_jacobian_step, External_interaction_field_data_index, External_interaction_field_data_local_eqn, External_interaction_field_data_pt, oomph::GeneralisedElement::get_residuals(), i, m, oomph::GeneralisedElement::ndof(), nexternal_interaction_field_data(), reset_after_external_interaction_field_fd(), reset_in_external_interaction_field_fd(), update_before_external_interaction_field_fd(), update_in_external_interaction_field_fd(), and oomph::Data::value_pt().
Referenced by fill_in_jacobian_from_external_interaction_by_fd(), and fill_in_jacobian_from_external_interaction_field_by_fd().
|
inlineprotected |
Calculate the contributions to the jacobian from the external interaction degrees of freedom associated with the geometry of the external elements using finite differences. This version computes the residuals vector before calculating the jacobian terms.
References fill_in_jacobian_from_external_interaction_geometric_by_fd(), oomph::GeneralisedElement::get_residuals(), and oomph::GeneralisedElement::ndof().
|
protected |
Calculate the contributions to the jacobian from the external interaction degrees of freedom associated with the geometry of the external elements using finite differences. This version of the function assumes that the residuals vector has already been calculated.
This function calculates the entries of Jacobian matrix, used in the Newton method, associated with the external interaction degrees of freedom for external geometric data. It does this using finite differences, rather than an analytical formulation, so can be done in total generality.
References oomph::GeneralisedElement::Default_fd_jacobian_step, External_interaction_geometric_data_index, External_interaction_geometric_data_local_eqn, External_interaction_geometric_data_pt, oomph::GeneralisedElement::get_residuals(), i, m, oomph::GeneralisedElement::ndof(), nexternal_interaction_geometric_data(), reset_after_external_interaction_geometric_fd(), reset_in_external_interaction_geometric_fd(), update_before_external_interaction_geometric_fd(), update_in_external_interaction_geometric_fd(), and oomph::Data::value_pt().
Referenced by fill_in_jacobian_from_external_interaction_by_fd(), and fill_in_jacobian_from_external_interaction_geometric_by_fd().
void oomph::ElementWithExternalElement::flush_all_external_element_storage | ( | ) |
Flush the storage for external elements.
Clear the storage for pointers to external elements and their associated local coordinates.
References External_element_local_coord, External_element_pt, and Nexternal_element_storage.
Referenced by ~ElementWithExternalElement().
|
virtual |
Function that must return all the data involved in the desired interactions from the external element
Function that must return all the data involved in the desired interactions from the external element Default is to call the identify_field_data_for_interaction() for each element.
Reimplemented in oomph::FSIWallElement, and oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >.
References i, and ninteraction().
Referenced by assign_external_interaction_data_local_eqn_numbers().
|
virtual |
Function that must return all geometric data involved in the desired interactions from the external element
Function that must return all geometric data involved in the desired interactions from the external element Default is to add all geometric data for each element for each interaction
Reimplemented in oomph::FSIWallElement.
References i, and ninteraction().
Referenced by assign_external_interaction_data_local_eqn_numbers().
|
inline |
Do not include any external geometric data when computing the element's Jacobian. This function should be called if the external element does not move and/or if the "source term" does not depend on spatial derivatives of the field computed by the other element.
References Add_external_geometric_data.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), oomph::ProjectableElement< ELEMENT >::enable_projection(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::further_build(), LinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement::LinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement(), LinearisedAxisymmetricQTaylorHoodMultiDomainElement::LinearisedAxisymmetricQTaylorHoodMultiDomainElement(), LinearisedQCrouzeixRaviartMultiDomainElement::LinearisedQCrouzeixRaviartMultiDomainElement(), LinearisedQTaylorHoodMultiDomainElement::LinearisedQTaylorHoodMultiDomainElement(), RefineableLinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement::RefineableLinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement(), RefineableLinearisedAxisymmetricQTaylorHoodMultiDomainElement::RefineableLinearisedAxisymmetricQTaylorHoodMultiDomainElement(), RefineableLinearisedQCrouzeixRaviartMultiDomainElement::RefineableLinearisedQCrouzeixRaviartMultiDomainElement(), and RefineableLinearisedQTaylorHoodMultiDomainElement::RefineableLinearisedQTaylorHoodMultiDomainElement().
|
inline |
Do not include any external interaction data when computing the element's Jacobian
References Add_external_interaction_data.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection(), oomph::ProjectableElement< ELEMENT >::enable_projection(), LinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement::LinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement(), LinearisedAxisymmetricQTaylorHoodMultiDomainElement::LinearisedAxisymmetricQTaylorHoodMultiDomainElement(), RefineableLinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement::RefineableLinearisedAxisymmetricQCrouzeixRaviartMultiDomainElement(), and RefineableLinearisedAxisymmetricQTaylorHoodMultiDomainElement::RefineableLinearisedAxisymmetricQTaylorHoodMultiDomainElement().
|
inline |
Do include external geometric data when computing the element's Jacobian. This function should be called to re-enable inclusion of external geometric data.
References Add_external_geometric_data.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection().
|
inline |
Do include external geometric data when computing the element's Jacobian This function should be called to re-enable inclusion of external interaction data
References Add_external_interaction_data.
Referenced by oomph::ProjectableElement< ELEMENT >::disable_projection().
void oomph::ElementWithExternalElement::initialise_external_element_storage | ( | ) |
Initialise storage for pointers to external elements and their local coordinates. This must be called before any of the access functions are used.
Initialise storage for source elements and their associated local coordinates for the specified number of interactions
References External_element_local_coord, External_element_pt, i, oomph::FiniteElement::integral_pt(), Nexternal_element_storage, Ninteraction, Nintpt, and oomph::Integral::nweight().
Referenced by oomph::Multi_domain_functions::aux_setup_multi_domain_interaction().
|
inline |
Return the number of Data items that affect the external interactions in this element. This includes e.g. fluid velocities and pressures in adjacent fluid elements in an FSI problem
References Nexternal_interaction_field_data.
Referenced by assign_external_interaction_data_local_eqn_numbers(), oomph::GeneralisedElement::assign_local_eqn_numbers(), describe_local_dofs(), oomph::FSIWallElement::describe_local_dofs(), external_interaction_field_data_pt(), and fill_in_jacobian_from_external_interaction_field_by_fd().
|
inline |
Return the number of geometric Data items that affect the external interactions in this element: i.e. any geometric Data in the problem that affects the nodal positions in the external elements.
References Nexternal_interaction_geometric_data.
Referenced by assign_external_interaction_data_local_eqn_numbers(), oomph::GeneralisedElement::assign_local_eqn_numbers(), describe_local_dofs(), oomph::FSIWallElement::describe_local_dofs(), external_interaction_geometric_data_pt(), and fill_in_jacobian_from_external_interaction_geometric_by_fd().
|
inline |
Return the number of interactions in the element.
References Ninteraction.
Referenced by assign_external_interaction_data_local_eqn_numbers(), oomph::ProjectableElement< ELEMENT >::enable_projection(), identify_all_field_data_for_external_interaction(), oomph::FSIWallElement::identify_all_field_data_for_external_interaction(), identify_all_geometric_data_for_external_interaction(), and oomph::FSIWallElement::identify_all_geometric_data_for_external_interaction().
|
delete |
Broken assignment operator.
void oomph::ElementWithExternalElement::output_external_elements | ( | std::ostream & | outfile, |
const unsigned & | interaction_index | ||
) |
Output by plotting vector from integration point to corresponding point in external element for specified interaction index
References oomph::FiniteElement::dim(), external_element_local_coord(), external_element_pt(), i, oomph::FiniteElement::integral_pt(), oomph::FiniteElement::interpolated_x(), oomph::Integral::knot(), oomph::Node::ndim(), oomph::FiniteElement::node_pt(), oomph::Integral::nweight(), s, and plotDoE::x.
|
inlineprivate |
Helper function for range checking in the access functions.
References Ninteraction, Nintpt, OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
Referenced by external_element_local_coord(), and external_element_pt().
|
inlineprotectedvirtual |
Function that is call after the finite differencing of the external interaction data associated with external fields This may be overloaded to reset any dependent variables that may have changed during the finite differencing.
Reimplemented in oomph::FSIWallElement.
Referenced by fill_in_jacobian_from_external_interaction_field_by_fd().
|
inlineprotectedvirtual |
Function that is call after the finite differencing of the external interaction data associated with external geometry. This may be overloaded to reset any dependent variables that may have changed during the finite differencing.
Reimplemented in oomph::FSIWallElement, and oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >.
Referenced by fill_in_jacobian_from_external_interaction_geometric_by_fd().
|
inlineprotectedvirtual |
Function called within the finite difference loop for external interaction data after the values in the i-th external interaction data object associated with external fields are reset. The default behaviour is to call the update function.
Reimplemented in oomph::FSIWallElement.
References i, and update_in_external_interaction_field_fd().
Referenced by fill_in_jacobian_from_external_interaction_field_by_fd().
|
inlineprotectedvirtual |
Function called within the finite difference loop for external interaction data after the values in the i-th external interaction data object associated with external geometry are reset. The default behaviour is to call the update function.
Reimplemented in oomph::FSIWallElement, and oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >.
References i, and update_in_external_interaction_geometric_fd().
Referenced by fill_in_jacobian_from_external_interaction_geometric_by_fd().
|
inline |
Set the number of interactions in the element This function is usually called in the specific element's constructor
References Ninteraction.
Referenced by oomph::AdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::AdvectionDiffusionBoussinesqElement(), oomph::ProjectableElement< ELEMENT >::disable_projection(), oomph::FSIWallElement::enable_fluid_loading_on_both_sides(), oomph::ProjectableElement< ELEMENT >::enable_projection(), oomph::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::FourierDecomposedHelmholtzFluxFromNormalDisplacementBCElement(), oomph::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::FourierDecomposedTimeHarmonicLinElastLoadedByHelmholtzPressureBCElement(), oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >::FSIAxisymFoepplvonKarmanElement(), oomph::FSIAxisymmetricLinearElasticityTractionElement< ELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::FSIAxisymmetricLinearElasticityTractionElement(), oomph::FSIImposeDisplacementByLagrangeMultiplierElement< ELEMENT >::FSIImposeDisplacementByLagrangeMultiplierElement(), oomph::FSILinearisedAxisymPoroelasticTractionElement< POROELASTICITY_BULK_ELEMENT, NAVIER_STOKES_BULK_ELEMENT >::FSILinearisedAxisymPoroelasticTractionElement(), oomph::HeatedPenetratorFluxElement< ELEMENT >::HeatedPenetratorFluxElement(), oomph::HelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::HelmholtzFluxFromNormalDisplacementBCElement(), oomph::LinearisedAxisymPoroelasticBJS_FSIElement< FLUID_BULK_ELEMENT, POROELASTICITY_BULK_ELEMENT >::LinearisedAxisymPoroelasticBJS_FSIElement(), oomph::LinearisedFSIAxisymmetricNStNoSlipBCElementElement< FLUID_BULK_ELEMENT, SOLID_BULK_ELEMENT >::LinearisedFSIAxisymmetricNStNoSlipBCElementElement(), oomph::NavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::NavierStokesBoussinesqElement(), oomph::PMLHelmholtzFluxFromNormalDisplacementBCElement< HELMHOLTZ_BULK_ELEMENT, ELASTICITY_BULK_ELEMENT >::PMLHelmholtzFluxFromNormalDisplacementBCElement(), oomph::RefineableAdvectionDiffusionBoussinesqElement< AD_ELEMENT, NST_ELEMENT >::RefineableAdvectionDiffusionBoussinesqElement(), oomph::RefineableNavierStokesBoussinesqElement< NST_ELEMENT, AD_ELEMENT >::RefineableNavierStokesBoussinesqElement(), oomph::FSIWallElement::setup_fsi_wall_element(), oomph::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::TimeHarmonicLinElastLoadedByHelmholtzPressureBCElement(), and oomph::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement< ELASTICITY_BULK_ELEMENT, HELMHOLTZ_BULK_ELEMENT >::TimeHarmonicLinElastLoadedByPMLHelmholtzPressureBCElement().
|
inline |
Helper function to check if storage has actually been allocated.
References External_element_local_coord, and External_element_pt.
|
inlineprotectedvirtual |
Function that is called before the finite differencing of any external interaction data associated with external fields. This may be overloaded to update any dependent data before finite differencing takes place.
Referenced by fill_in_jacobian_from_external_interaction_field_by_fd().
|
inlineprotectedvirtual |
Function that is called before the finite differencing of any external interaction data associated with external geometry. This may be overloaded to update any dependent data before finite differencing takes place.
Reimplemented in oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >.
Referenced by fill_in_jacobian_from_external_interaction_geometric_by_fd().
|
inlineprotectedvirtual |
Function called within the finite difference loop for external interaction data after a change in any values in the i-th external interaction data object associated with external fields.
Reimplemented in oomph::FSIWallElement.
Referenced by fill_in_jacobian_from_external_interaction_field_by_fd(), and reset_in_external_interaction_field_fd().
|
inlineprotectedvirtual |
Function called within the finite difference loop for external interaction data after a change in any values in the i-th external interaction data object associated with external geometry.
Reimplemented in oomph::FSIWallElement, and oomph::FSIAxisymFoepplvonKarmanElement< NNODE_1D, FLUID_ELEMENT >.
Referenced by fill_in_jacobian_from_external_interaction_geometric_by_fd(), and reset_in_external_interaction_geometric_fd().
|
protected |
Boolean flag to indicate whether to include the external geometric data.
Referenced by add_external_geometric_data(), assign_external_interaction_data_local_eqn_numbers(), external_geometric_data_is_included(), ignore_external_geometric_data(), and include_external_geometric_data().
|
protected |
Boolean flag to indicate whether to include the external data.
Referenced by add_external_interaction_data(), assign_external_interaction_data_local_eqn_numbers(), oomph::FSIWallElement::exclude_external_load_data(), ignore_external_interaction_data(), include_external_interaction_data(), and oomph::FSIWallElement::include_external_load_data().
Storage for vectors of local coordinates in external elements that correspond to the appropriate integration / point.
Referenced by check_storage_allocated(), external_element_local_coord(), flush_all_external_element_storage(), initialise_external_element_storage(), and storage_has_been_allocated().
|
private |
Storage for pointers to elements that provide contributions to the residuals of the current element. Potentially a different element contributes to each integration point.
Referenced by check_storage_allocated(), external_element_pt(), flush_all_external_element_storage(), initialise_external_element_storage(), and storage_has_been_allocated().
|
private |
Storage for the index of the values in the external field data that affect the interactions in the element
Referenced by assign_external_interaction_data_local_eqn_numbers(), fill_in_jacobian_from_external_interaction_field_by_fd(), and ~ElementWithExternalElement().
|
private |
Storage for the local equation number associated with the external field data the affect the interactions in the element
Referenced by assign_external_interaction_data_local_eqn_numbers(), fill_in_jacobian_from_external_interaction_field_by_fd(), and ~ElementWithExternalElement().
|
protected |
/ Storage for pointers to external field Data that affect the interactions in the elemenet
Referenced by assign_external_interaction_data_local_eqn_numbers(), describe_local_dofs(), oomph::FSIWallElement::describe_local_dofs(), external_interaction_field_data_pt(), fill_in_jacobian_from_external_interaction_field_by_fd(), and ~ElementWithExternalElement().
|
private |
Storage for the index of the values in the external geometric data that affect the interactions in the element
Referenced by assign_external_interaction_data_local_eqn_numbers(), fill_in_jacobian_from_external_interaction_geometric_by_fd(), and ~ElementWithExternalElement().
|
private |
Storage for the local equation number associated with the external geometric data the affect the interactions in the element
Referenced by assign_external_interaction_data_local_eqn_numbers(), fill_in_jacobian_from_external_interaction_geometric_by_fd(), and ~ElementWithExternalElement().
|
protected |
/ Storage for pointers to external geometric Data that affect the interactions in the elemenet
Referenced by assign_external_interaction_data_local_eqn_numbers(), describe_local_dofs(), oomph::FSIWallElement::describe_local_dofs(), external_interaction_geometric_data_pt(), fill_in_jacobian_from_external_interaction_geometric_by_fd(), and ~ElementWithExternalElement().
|
private |
Number of entries in the external element storage schemes (Nintergation_pt * Ninteraction)
Referenced by flush_all_external_element_storage(), and initialise_external_element_storage().
|
private |
Number of external interaction field data.
Referenced by assign_external_interaction_data_local_eqn_numbers(), and nexternal_interaction_field_data().
|
private |
Number of external interaction geometric data.
Referenced by assign_external_interaction_data_local_eqn_numbers(), and nexternal_interaction_geometric_data().
|
private |
Number of interactions.
Referenced by initialise_external_element_storage(), ninteraction(), range_check(), and set_ninteraction().
|
private |
Number of intergation point in the element.
Referenced by external_element_local_coord(), external_element_pt(), initialise_external_element_storage(), and range_check().