![]() |
|
#include <contact_elements.h>
Inheritance diagram for oomph::Penetrator:Public Member Functions | |
| Penetrator () | |
| Constructor. More... | |
| virtual | ~Penetrator () |
| Destructor. More... | |
| virtual void | penetration (const Vector< double > &x, const Vector< double > &n, double &d, bool &intersection) const =0 |
| virtual void | output (std::ostream &outfile, const unsigned &nplot) const =0 |
| Output coordinates of penetrator at nplot plot points. More... | |
| virtual Vector< double > | rigid_body_displacement () const |
| virtual Vector< std::pair< Data *, unsigned > > | equilibrium_data () |
| virtual void | surface_coordinate (const Vector< double > &x, Vector< double > &zeta) const |
///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////// Base class for penetrator. Must be able to compute the penetration with another body, based on the position vector, x, to, and the outer unit normal, n, on that other body.
Vector of pairs identifying values (via a pair of pointer to Data object and index within it) that correspond to the Data values that are determined by the horizontal/vertical/... equilibrium of force equations. Empty by default, indicating that the penetrator is in a prescribed position (i.e. a position that is not determined as part of the solution!)
Reimplemented in CircularPenetratorElement, CircularPenetratorElement, and HeatedCircularPenetratorElement.
Referenced by oomph::SurfaceContactElementBase< ELEMENT >::set_penetrator_pt().
|
pure virtual |
Output coordinates of penetrator at nplot plot points.
Implemented in CircularPenetratorElement, CircularPenetratorElement, HeatedCircularPenetratorElement, and oomph::CircularPenetrator.
Referenced by MeltContactProblem< ELEMENT >::doc_solution(), SolarRadiationProblem< ELEMENT >::doc_solution(), and ContactProblem< ELEMENT >::doc_solution().
|
pure virtual |
Get penetration for given point x with outer unit normal n. Should return the negative distance along outer unit normal to the
closest point on the penetrator, so that minus values imply no penetration and positive ones imply penetration. If the ray from the unit normal never crosses the penetrator,set intersection to false In this case, d can be set to anything, as it should be ignored anway. Returning a bool moves the problem of deciding what to do with non-intersection to each individual method
Implemented in CircularPenetratorElement, CircularPenetratorElement, HeatedCircularPenetratorElement, and oomph::CircularPenetrator.
Referenced by oomph::SurfaceContactElementBase< ELEMENT >::penetration().
Get rigid body displacement of reference point in penetrator. Broken virtual, so you don't really have to imlement this...
Reimplemented in HeatedCircularPenetratorElement, and oomph::CircularPenetrator.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
Get surface coordinate along penetrator for given point x; implies some sort of "projection"-type relation between point x and the parametrisation of the surface (e.g. polar angle).
Reimplemented in HeatedCircularPenetratorElement, and oomph::CircularPenetrator.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.