b2api
B2000++ API Reference Manual, VERSION 4.6
 
Loading...
Searching...
No Matches
b2element_beam_cross_section.H
1//------------------------------------------------------------------------
2// b2element_beam_cross_section.H --
3//
4// written by Mathias Doreille
5// Thomas Blome <thomas.blome@dlr.de>
6//
7// Copyright (c) 2011-2012 SMR Engineering & Development SA
8// 2502 Bienne, Switzerland
9//
10// (c) 2023 Deutsches Zentrum für Luft- und Raumfahrt (DLR) e.V.
11// Linder Höhe, 51147 Köln
12//
13// All Rights Reserved. Proprietary source code. The contents of
14// this file may not be disclosed to third parties, copied or
15// duplicated in any form, in whole or in part, without the prior
16// written permission of SMR.
17//------------------------------------------------------------------------
18
19#ifndef B2ELEMENT_BEAM_CROSS_SECTION_H_
20#define B2ELEMENT_BEAM_CROSS_SECTION_H_
21
22#include "model/b2element.H"
23#include "utils/b2linear_algebra.H"
24
25namespace b2000 {
26
27class BeamCrossSectionBaseElement : public TypedElement<double> {
28public:
29 virtual void add_value_0(
30 Model* model, double& area, double neutral_point[2], double& mass,
31 double inertia_point[2]) = 0;
32
33 virtual void add_value_01(
34 Model* model, const double center[2], double neutral_axis[3],
35 double inertia_moment[3]) = 0;
36
37 virtual void add_value_1(
38 Model* model, const double neutral_point[2], const double inetria_axis[2][2],
39 const size_t number_of_disp_dof, b2linalg::Index& dof_numbering,
40 b2linalg::Matrix<double, b2linalg::Mpacked>& K) = 0;
41
42 virtual void add_value_2(
43 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
44 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& v,
45 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& lambda,
46 const bool beta_cd[6][6], const int beta_cs, const int beta_c[6], const int beta_ds,
47 const int beta_d[6], b2float128 beta[6][6]) = 0;
48
49 virtual void add_value_3(
50 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
51 const size_t number_of_disp_dof,
52 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& v,
53 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& lambda,
54 const b2float128 beta[6][6], b2linalg::Matrix<double>& u) = 0;
55
56 // for the free bc stress
57 virtual void add_value_4(
58 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
59 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& v,
60 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& lambda,
61 const b2float128 beta[6][6], std::vector<size_t>& node_weight,
62 b2linalg::Matrix<double> strain[6], b2linalg::Matrix<double> stress[6]) = 0;
63
64 // for the boundary condition
65 virtual void add_value_5(
66 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
67 double f[6]) = 0;
68
69 virtual void add_value_6(
70 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
71 const size_t number_of_disp_dof, const double f[6],
72 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& u,
73 const b2linalg::Matrix<double> stress[6], b2linalg::Vector<double>& value) = 0;
74
75 // for the bc stress contribution
76 virtual void add_value_7(
77 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
78 const double f[6], const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& u,
79 const b2linalg::Vector<double, b2linalg::Vdense_constref>& vd,
80 const b2linalg::Vector<double, b2linalg::Vdense_constref>& lambdad,
81 b2linalg::Matrix<double>& straind, b2linalg::Matrix<double>& stressd) = 0;
82
83 virtual void add_value_8(
84 Model* model, const double neutral_point[2], const double neutral_axis[2][2],
85 const b2linalg::Matrix<double, b2linalg::Mrectangle_constref>& u,
86 const b2linalg::Vector<double, b2linalg::Vdense_constref>& vd,
87 const b2linalg::Matrix<double> stress[6], const b2linalg::Matrix<double>& stressd,
88 double betad[6]) = 0;
89};
90
91} // namespace b2000
92
93#endif /* B2ELEMENT_BEAM_CROSS_SECTION_H_ */
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32