OpenBeam
C++ library for static analysis of mechanical structures
CElementSpringXY.h
1 /* +---------------------------------------------------------------------------+
2  | OpenBeam - C++ Finite Element Analysis library |
3  | |
4  | Copyright (C) 2010-2021 Jose Luis Blanco Claraco |
5  | University of Malaga |
6  | |
7  | OpenBeam is free software: you can redistribute it and/or modify |
8  | it under the terms of the GNU General Public License as published by |
9  | the Free Software Foundation, either version 3 of the License, or |
10  | (at your option) any later version. |
11  | |
12  | OpenBeam is distributed in the hope that it will be useful, |
13  | but WITHOUT ANY WARRANTY; without even the implied warranty of |
14  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
15  | GNU General Public License for more details. |
16  | |
17  | You should have received a copy of the GNU General Public License |
18  | along with OpenBeam. If not, see <http://www.gnu.org/licenses/>. |
19  | |
20  +---------------------------------------------------------------------------+
21  */
22 
23 #pragma once
24 
25 #include <memory>
26 
27 #include "CElement.h"
28 #include "types.h"
29 
30 namespace openbeam
31 {
35 class CElementSpringXY : public CElement, public std::enable_shared_from_this<CElementSpringXY>
36 {
37  public:
40  const size_t from_node_id, const size_t to_node_id, const num_t Kx, const num_t Ky);
41 
45  void getLocalStiffnessMatrices(std::vector<TStiffnessSubmatrix>& outSubMats) const override;
46 
47  void getLocalDoFs(std::vector<used_DoFs_t>& dofs) const override;
48 
49  num_t Kx, Ky;
50 
55  void loadParamsFromSet(const mrpt::containers::yaml& p, const EvaluationContext& ctx) override;
56 
60  void drawSVG(
61  void* _cairo_context,
62  const DrawStructureOptions& options,
63  const RenderInitData& ri,
64  const DrawElementExtraParams& draw_el_params,
65  const MeshOutputInfo* meshing_info) const override;
66  mrpt::viz::CSetOfObjects::Ptr getVisualization(
67  const DrawStructureOptions& options,
68  const DrawElementExtraParams& draw_el_params,
69  const MeshOutputInfo* meshing_info) const override
70  {
71  return {};
72  }
73 
75  void do_mesh(
76  const size_t my_idx,
77  CStructureProblem& out_fem,
78  MeshOutputInfo& out_info,
79  const MeshParams& params) override;
80 };
81 } // namespace openbeam
Definition: CElementSpringXY.h:36
void getLocalDoFs(std::vector< used_DoFs_t > &dofs) const override
void loadParamsFromSet(const mrpt::containers::yaml &p, const EvaluationContext &ctx) override
void do_mesh(const size_t my_idx, CStructureProblem &out_fem, MeshOutputInfo &out_info, const MeshParams &params) override
void getLocalStiffnessMatrices(std::vector< TStiffnessSubmatrix > &outSubMats) const override
num_t Ky
Stiffness constants of the spring (N/m)
Definition: CElementSpringXY.h:49
void drawSVG(void *_cairo_context, const DrawStructureOptions &options, const RenderInitData &ri, const DrawElementExtraParams &draw_el_params, const MeshOutputInfo *meshing_info) const override
Definition: CElement.h:49
Definition: CStructureProblem.h:36
Definition: DrawStructureOptions.h:102
Definition: DrawStructureOptions.h:34
Definition: types.h:160
Definition: CFiniteElementProblem.h:152
Definition: CFiniteElementProblem.h:142
Definition: DrawStructureOptions.h:114