25 #include <mrpt/opengl/CSetOfObjects.h>
26 #include <openbeam/types.h>
32 class CFiniteElementProblem;
34 struct MeshOutputInfo;
35 class CStructureProblem;
39 size_t edge_in, edge_out;
44 using used_DoFs_t = std::array<bool, 6>;
51 using Ptr = std::shared_ptr<CElement>;
52 using ConstPtr = std::shared_ptr<const CElement>;
75 virtual std::string asString()
const {
return ""; }
83 std::vector<TStiffnessSubmatrix>& outSubMats)
const = 0;
86 virtual void getLocalDoFs(std::vector<used_DoFs_t>& dofs)
const = 0;
97 std::vector<TStiffnessSubmatrix>& outSubMats)
const;
99 void setGlobalOrientation(
const TRotation3D& new_orientation)
149 virtual mrpt::opengl::CSetOfObjects::Ptr getVisualization(
162 unsigned char nEdges,
const size_t from_node_id,
163 const size_t to_node_id);
166 const unsigned char m_nEdges;
Definition: CElement.h:49
void getGlobalDoFs(std::vector< used_DoFs_t > &dofs) const
virtual void getLocalDoFs(std::vector< used_DoFs_t > &dofs) const =0
num_t m_design_rotation_around_linear_axis
For linear elements, the rotation around +X(local)
Definition: CElement.h:170
virtual void getLocalStiffnessMatrices(std::vector< TStiffnessSubmatrix > &outSubMats) const =0
virtual void updateOrientationFromNodePositions()
virtual void drawSVG(void *_cairo_context, const DrawStructureOptions &options, const RenderInitData &ri, const DrawElementExtraParams &draw_el_params, const MeshOutputInfo *meshing_info) const =0
virtual void loadParamsFromSet(const mrpt::containers::yaml &p, const EvaluationContext &ctx)=0
CElement(unsigned char nEdges, const size_t from_node_id, const size_t to_node_id)
virtual void do_mesh(const size_t my_idx, CStructureProblem &out_fem, MeshOutputInfo &out_info, const MeshParams ¶ms)=0
static Ptr createElementByName(const std::string &sName)
virtual void getGlobalStiffnessMatrices(std::vector< TStiffnessSubmatrix > &outSubMats) const
std::vector< size_t > conected_nodes_ids
Definition: CElement.h:68
void setDesignRotationAroundLinearAxis(num_t ang)
Definition: CElement.h:117
unsigned char getNumberEdges() const
Definition: CElement.h:73
CFiniteElementProblem * getParent() const
Definition: CElement.h:139
void loadParamsFromSet(const mrpt::containers::yaml &p)
Definition: CElement.h:132
TRotation3D m_global_orientation
Orientation of the element wrt global coords.
Definition: CElement.h:173
Definition: CFiniteElementProblem.h:196
Definition: CStructureProblem.h:36
Definition: DrawStructureOptions.h:34
Definition: CFiniteElementProblem.h:138
Definition: CFiniteElementProblem.h:128
Definition: DrawStructureOptions.h:115
Definition: CElement.h:38