![]() |
|
#include <mesh_as_geometric_object.h>
Public Member Functions | |
SamplePointContainer * | sample_point_container_pt () const |
Pointer to the sample point container. More... | |
FiniteElement * | finite_element_pt (const unsigned &e) |
Return pointer to e-th finite element. More... | |
unsigned | sample_point_container_version () const |
unsigned | nelement () |
Number of elements in the underlying mesh. More... | |
MeshAsGeomObject (Mesh *const &mesh_pt) | |
Constructor. More... | |
MeshAsGeomObject (SamplePointContainerParameters *sample_point_container_parameters_pt) | |
Constructor. More... | |
MeshAsGeomObject () | |
Empty Constructor. More... | |
~MeshAsGeomObject () | |
Destructor. More... | |
MeshAsGeomObject (const MeshAsGeomObject &)=delete | |
Broken copy constructor. More... | |
void | operator= (const MeshAsGeomObject &)=delete |
Broken assignment operator. More... | |
unsigned | ngeom_data () const |
How many items of Data does the shape of the object depend on? More... | |
Data * | geom_data_pt (const unsigned &j) |
void | locate_zeta (const Vector< double > &zeta, GeomObject *&sub_geom_object_pt, Vector< double > &s, const bool &use_coordinate_as_initial_guess=false) |
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 (const Vector< double > &xi, DenseMatrix< double > &drdxi) const |
Return the derivative of the position. More... | |
![]() | |
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_dt (const Vector< double > &zeta, const unsigned &j, Vector< double > &drdt) |
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 |
virtual void | interpolated_zeta (const Vector< double > &s, Vector< double > &zeta) const |
Private Member Functions | |
void | build_it (SamplePointContainerParameters *sample_point_container_parameters_pt) |
Helper function to actually build the thing. More... | |
Private Attributes | |
Vector< Data * > | Geom_data_pt |
Vector of pointers to Data items that affects the object's shape. More... | |
Vector< FiniteElement * > | Sub_geom_object_pt |
Internal storage for the elements that constitute the object. More... | |
SamplePointContainer * | Sample_point_container_pt |
Pointer to the sample point container. More... | |
Mesh * | Mesh_pt |
Pointer to mesh. More... | |
unsigned | Sample_point_container_version |
Additional Inherited Members | |
![]() | |
unsigned | NLagrangian |
Number of Lagrangian (intrinsic) coordinates. More... | |
unsigned | Ndim |
Number of Eulerian coordinates. More... | |
TimeStepper * | Geom_object_time_stepper_pt |
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// This class provides a GeomObject representation of a given finite element mesh. The Lagrangian coordinate is taken to be the dimension of the (first) element in the mesh and the Eulerian coordinate is taken to be the dimension of the (first) node in the mesh. If there are no elements or nodes the appropriate dimensions will be set to zero. The constituent elements of the mesh must have their own GeomObject representations, so they must be FiniteElements, and they become sub-objects in this compound GeomObject.
|
inline |
Constructor.
References build_it(), and oomph::MeshAsGeomObject_Helper::create_sample_point_container_parameters().
|
inline |
Constructor.
References build_it().
|
inline |
Destructor.
References Sample_point_container_pt.
|
delete |
Broken copy constructor.
|
inlineprivate |
Helper function to actually build the thing.
References oomph::Mesh::communicator_pt(), oomph::FiniteElement::dim(), e(), oomph::Mesh::element_pt(), oomph::Mesh::finite_element_pt(), Geom_data_pt, geom_data_pt(), i, oomph::Mesh::is_mesh_distributed(), Mesh_pt, oomph::SamplePointContainerParameters::mesh_pt(), oomph::Node::ndim(), oomph::Mesh::nelement(), ngeom_data(), oomph::Mesh::nnode(), oomph::Mesh::node_pt(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::oomph_info, Sample_point_container_pt, Sample_point_container_version, oomph::GeomObject::set_nlagrangian_and_ndim(), Sub_geom_object_pt, oomph::UseNonRefineableBinArray, and oomph::UseRefineableBinArray.
Referenced by MeshAsGeomObject().
|
inlinevirtual |
Return the derivative of the position.
Reimplemented from oomph::GeomObject.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inline |
Return pointer to e-th finite element.
References e(), and Sub_geom_object_pt.
Return pointer to the j-th Data item that the object's shape depends on
Reimplemented from oomph::GeomObject.
References Geom_data_pt, and j.
Referenced by build_it().
|
inlinevirtual |
Find the sub geometric object and local coordinate therein that corresponds to the intrinsic coordinate zeta. If sub_geom_object_pt=0 on return from this function, none of the constituent sub-objects contain the required coordinate. Following from the general interface to this function in GeomObjects, setting the optional bool argument to true means that each time the sub-object's locate_zeta function is called, the coordinate argument "s" is used as the initial guess. However, this doesn't make sense here and the argument is ignored (though a warning is issued when the code is compiled in PARANOID setting)
Reimplemented from oomph::GeomObject.
References SamplePointContainer::locate_zeta(), OOMPH_EXCEPTION_LOCATION, s, Sample_point_container_pt, and Eigen::zeta().
Referenced by DarcyProblem< ELEMENT >::doc_shape_functions(), position(), SegregatedFSICollapsibleChannelProblem< ELEMENT >::SegregatedFSICollapsibleChannelProblem(), SegregatedFSIDrivenCavityProblem< ELEMENT >::SegregatedFSIDrivenCavityProblem(), oomph::LineVisualiser::setup(), oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices(), oomph::MGSolver< DIM >::setup_interpolation_matrices_unstructured(), and oomph::HelmholtzMGPreconditioner< DIM >::setup_interpolation_matrices_unstructured().
|
inline |
Number of elements in the underlying mesh.
References Sub_geom_object_pt.
|
inlinevirtual |
How many items of Data does the shape of the object depend on?
Reimplemented from oomph::GeomObject.
References Geom_data_pt.
Referenced by build_it().
|
delete |
Broken assignment operator.
|
inlinevirtual |
Parametrised position on object: r(zeta). Evaluated at previous timestep. t=0: current time; t>0: previous timestep. This provides an (expensive!) default implementation in which we loop over all the constituent sub-objects and check if they contain zeta and then evaluate their position() function.
Reimplemented from oomph::GeomObject.
References i, locate_zeta(), Mesh_pt, oomph::GeomObject::nlagrangian(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::Mesh::output(), oomph::GeomObject::position(), UniformPSDSelfTest::r, s, plotPSD::t, and Eigen::zeta().
|
inlinevirtual |
Return the position as a function of the intrinsic coordinate zeta. This provides an (expensive!) default implementation in which we loop over all the constituent sub-objects and check if they contain zeta and then evaluate their position() function.
Implements oomph::GeomObject.
References UniformPSDSelfTest::r, plotPSD::t, and Eigen::zeta().
Referenced by oomph::RefineableTetgenMesh< ELEMENT >::snap_nodes_onto_boundary().
|
inline |
Pointer to the sample point container.
References Sample_point_container_pt.
Referenced by oomph::RefineableGmshTetMesh< ELEMENT >::adapt(), and oomph::LineVisualiser::setup().
|
inline |
Which sample point container is used in locate zeta? (uses enum Sample_Point_Container_Type)
References Sample_point_container_version.
Vector of pointers to Data items that affects the object's shape.
Referenced by build_it(), geom_data_pt(), and ngeom_data().
|
private |
Pointer to mesh.
Referenced by build_it(), and position().
|
private |
Pointer to the sample point container.
Referenced by build_it(), locate_zeta(), sample_point_container_pt(), and ~MeshAsGeomObject().
|
private |
Which version of the sample point container are we using?
Referenced by build_it(), and sample_point_container_version().
|
private |
Internal storage for the elements that constitute the object.
Referenced by build_it(), finite_element_pt(), and nelement().