Skip to content
Snippets Groups Projects

USCSDPM v1.0

Merged Adrien Crovato requested to merge adri into master
All threads resolved!
5 files
+ 253
5
Compare changes
  • Side-by-side
  • Inline
Files
5
+ 23
18
@@ -51,12 +51,15 @@ protected:
size_t _id; ///< element number
Tag *_tag; ///< physical tag to which element belongs
std::vector<Node *> _nodes; ///< nodes of the element
// Flags
bool _hasVals; ///< true if (precomputed) values have been initialized
bool _toDate; ///< whether the element values are up-to-date
// Geometry
sdpmVector3d _cg; ///< element center of gravity
sdpmDouble _vol; ///< element volume
sdpmVector3d _nrm; ///< unit normal vector
std::vector<sdpmVector3d> _coords; ///< scaled (compressible) coordinates
sdpmVector3d _cg0; ///< element center of gravity
sdpmDouble _srf0; ///< element surface area
sdpmVector3d _nrm0; ///< unit normal vector
sdpmVector3d _cg; ///< compressible element center of gravity
sdpmDouble _srf; ///< compressible element surface area
sdpmVector3d _nrm; ///< compressible unit normal vector
public:
#ifndef SWIG
@@ -70,31 +73,33 @@ public:
}
#ifndef SWIG
protected:
// Geometry
void computeCg();
virtual void computeVolume();
virtual void computeNormal();
public:
// Management
virtual void init();
virtual void update();
virtual void update(sdpmDouble beta);
// Setters
void setNode(size_t i, Node *n) { _nodes[i] = n; }
#endif
// Getters
size_t getId() const { return _id; }
size_t const &getIdRef() const { return _id; }
Tag const *getTag() const { return _tag; }
std::vector<Node *> const &getNodes() const { return _nodes; }
inline bool hasValues() const;
inline sdpmVector3d const &getCg() const;
inline sdpmDouble getVolume() const;
inline sdpmVector3d const &getNormal() const;
sdpmVector3d const &getCg() const { return _cg0; }
sdpmDouble getSurfaceArea() const { return _srf0; }
sdpmVector3d const &getNormal() const { return _nrm0; }
inline std::vector<sdpmVector3d> const &getCompressibleCoords() const;
inline sdpmVector3d const &getCompressibleCg() const;
inline sdpmDouble getCompressibleSurfaceArea() const;
inline sdpmVector3d const &getCompressibleNormal() const;
#ifndef SWIG
// Utilities
virtual sdpmVector3d computeGradient(std::vector<sdpmDouble> const &u) const;
virtual void write(std::ostream &out) const override;
#endif
};
#ifndef SWIG
#include "sdpmElement.inl"
#endif
} // namespace sdpm
Loading