25 #include <mrpt/viz/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 ""; }
85 virtual void getLocalDoFs(std::vector<used_DoFs_t>& dofs)
const = 0;
97 void setGlobalOrientation(
const TRotation3D& new_orientation)
136 void* _cairo_context,
142 virtual mrpt::viz::CSetOfObjects::Ptr getVisualization(
157 unsigned char nEdges,
158 const size_t from_node_id,
159 const size_t to_node_id);
162 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:166
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:112
unsigned char getNumberEdges() const
Definition: CElement.h:73
CFiniteElementProblem * getParent() const
Definition: CElement.h:130
void loadParamsFromSet(const mrpt::containers::yaml &p)
Definition: CElement.h:123
TRotation3D m_global_orientation
Orientation of the element wrt global coords.
Definition: CElement.h:169
Definition: CFiniteElementProblem.h:212
Definition: CStructureProblem.h:36
Definition: DrawStructureOptions.h:34
Definition: CFiniteElementProblem.h:152
Definition: CFiniteElementProblem.h:142
Definition: DrawStructureOptions.h:114
Definition: CElement.h:38