IBSimu internal structure

I will update this post with what I understand of the IBSimu library structure.

Here is the class diagram so far [PDF][[TEX]]:

IBSimu Partial Class Diagram IBSimu Partial Class Diagram (as of 13/08/2020)

The EpotField class inherits from the following classes:

  • Mesh: has no Geometry
    • geom_mode_e _geom_mode (2D, 3D, Cyl)
    • Int3D _size
    • Vec3D _origo
    • Vec3D _max
    • double _h – length of mesh step
    • double _div_h (reciprocal of _h)
    • default implicit copy constructor
    • save( std::ostream &os)
  • ScalarField: public Field, almost empty
  • Geometry: public Mesh
  • MeshScalarField : public ScalarField, public Mesh
    • double *_F (field data)
    • MeshScalarField(const Mesh &m) -> Mesh(m) and allocate memory for _F
    • DOES NOT store a pointer to Geometry
  • EpotField: public MeshScalarField
    • Geometry *_geom
    • overload operator() for returning linear interpolation
    • DOES store a pointer to Geometry
    • does nothing more

EpotEfield is given by:

  • Field
    • abstract base class, does nothing
  • VectorField: public Field
    • Vect3D operator()(Vec3D &x)
    • does nothing more
  • EpotEfield: public VectorField
    • const EpotField &_epot
    • const Geometry *_geom
    • double *_F[3]
C++ 

See also