b2api
B2000++ API Reference Manual, VERSION 4.6
 
Loading...
Searching...
No Matches
b2material_stress_3d_mixed_linear.H
1//------------------------------------------------------------------------
2// b2material_stress_3d_mixed_linear.H --
3//
4// Implements a linear orthotropic material model for 3D elements
5// using displacement/pressure formulation.
6//
7// written by Thomas Ludwig
8// Neda Ebrahimi Pour <neda.ebrahimipour@dlr.de>
9//
10// (c) 2009-2012,2016 SMR Engineering & Development SA
11// 2502 Bienne, Switzerland
12//
13// (c) 2023 Deutsches Zentrum für Luft- und Raumfahrt (DLR) e.V.
14// Linder Höhe, 51147 Köln
15//
16// All Rights Reserved. Proprietary source code. The contents of
17// this file may not be disclosed to third parties, copied or
18// duplicated in any form, in whole or in part, without the prior
19// written permission of SMR.
20//------------------------------------------------------------------------
21
22#ifndef B2MATERIAL_STRESS_3D_MIXED_LINEAR_H_
23#define B2MATERIAL_STRESS_3D_MIXED_LINEAR_H_
24
25#include "elements/properties/b2material_stress_3d_mixed.H"
26#include "io/b2000_db/b2000_db_v3/b2fortran_element_property.H"
27
28namespace b2000 {
29
30class MaterialStress3DMixedLinear : virtual public MaterialStress3DMixed {
31public:
32 void init(b2dbv3::MaterialProperty* material);
33
34 void get_stress(
35 Model* model, const bool linear, const EquilibriumSolution equilibrium_solution,
36 const double time, const double delta_time, GradientContainer* gradient_container,
37 SolverHints* solver_hints, const Element* element, const double el_coordinates[3],
38 const int layer_id,
39 b2linalg::Vector<double, b2linalg::Vdense_constref> nodes_interpolation,
40 const double bg_coordinates[3], const double covariant_base[3][3], const double volume,
41 const double deformation_gradient[3][3], const double velocity[3],
42 const double acceleration[3], const double interpolated_pressure, double stress[6],
43 double& pressure, double CUU[21], double CUP[6], double& CPP, double inertia_force[3],
44 double& density) override;
45
46private:
47 struct Layer {
48 std::string not_supported;
49 bool isotropic;
50 double density;
51 double c[6][6];
52 double cuu[21];
53 double cup[6];
54 double cpp;
55 double p[6];
56 };
57
58 typedef std::vector<Layer> Layers;
59
60 Layers layers;
61};
62
63} // namespace b2000
64
65#endif // B2_MATERIAL_STRESS_3D_MIXED_LINEAR_H_
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32