-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfinite_cell_application.cpp
More file actions
84 lines (72 loc) · 3.25 KB
/
finite_cell_application.cpp
File metadata and controls
84 lines (72 loc) · 3.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// see finite_cell_application/LICENSE.txt
//
// Project Name: Kratos
// Last Modified by: $Author: hbui $
// Date: $Date: Feb 7, 2017$
// Revision: $Revision: 1.0 $
//
//
// System includes
// External includes
// Project includes
#include "geometries/quadrilateral_2d_4.h"
#include "geometries/quadrilateral_2d_8.h"
#include "geometries/quadrilateral_2d_9.h"
#include "geometries/triangle_2d_3.h"
#include "geometries/triangle_2d_6.h"
#include "geometries/triangle_3d_3.h"
#include "geometries/triangle_3d_6.h"
#include "geometries/tetrahedra_3d_4.h"
#include "geometries/tetrahedra_3d_10.h"
#include "geometries/prism_3d_6.h"
#include "geometries/prism_3d_15.h"
#include "geometries/quadrilateral_3d_4.h"
#include "geometries/quadrilateral_3d_8.h"
#include "geometries/quadrilateral_3d_9.h"
#include "geometries/hexahedra_3d_8.h"
#include "geometries/hexahedra_3d_20.h"
#include "geometries/hexahedra_3d_27.h"
#include "geometries/line_2d_2.h"
#include "geometries/line_3d_2.h"
#include "geometries/line_3d_3.h"
#include "geometries/point_2d.h"
#include "geometries/point_3d.h"
#include "custom_geometries/finite_cell_geometry.h"
#include "finite_cell_application.h"
#include "finite_cell_application_variables.h"
#ifdef SD_APP_FORWARD_COMPATIBILITY
#define FINITE_CELL_APP_CREATE_ELEMENT(element_type, geometry_type, number_of_nodes) \
element_type( 0, Element::GeometryType::Pointer( new geometry_type <Node>( Element::GeometryType::PointsArrayType( number_of_nodes ) ) ) )
#define FINITE_CELL_APP_CREATE_CONDITION(condition_type, geometry_type, number_of_nodes) \
condition_type( 0, Condition::GeometryType::Pointer( new geometry_type <Node>( Condition::GeometryType::PointsArrayType( number_of_nodes ) ) ) )
#else
#define FINITE_CELL_APP_CREATE_ELEMENT(element_type, geometry_type, number_of_nodes) \
element_type( 0, Element::GeometryType::Pointer( new geometry_type <Node<3> >( Element::GeometryType::PointsArrayType( number_of_nodes, Node<3>() ) ) ) )
#define FINITE_CELL_APP_CREATE_CONDITION(condition_type, geometry_type, number_of_nodes) \
condition_type( 0, Condition::GeometryType::Pointer( new geometry_type <Node<3> >( Condition::GeometryType::PointsArrayType( number_of_nodes, Node<3>() ) ) ) )
#endif
namespace Kratos
{
KratosFiniteCellApplication::KratosFiniteCellApplication()
#ifdef SD_APP_FORWARD_COMPATIBILITY
: KratosApplication("KratosFiniteCellApplication")
#else
: KratosApplication()
#endif
{}
void KratosFiniteCellApplication::Register()
{
std::cout << "Initializing KratosFiniteCellApplication... " << std::endl;
// register variables to Kratos kernel
KRATOS_REGISTER_VARIABLE( SUBCELL_WEIGHTS )
KRATOS_REGISTER_VARIABLE( SUBCELL_DOMAIN_SIZE )
KRATOS_REGISTER_VARIABLE( SUBCELL_DOMAIN_SIZES )
KRATOS_REGISTER_VARIABLE( PHYSICAL_INTEGRATION_POINT_THREED_STRESSES )
KRATOS_REGISTER_3D_VARIABLE_WITH_COMPONENTS( PHYSICAL_INTEGRATION_POINT_LOCAL )
KRATOS_REGISTER_3D_VARIABLE_WITH_COMPONENTS( PHYSICAL_INTEGRATION_POINT_GLOBAL )
KRATOS_REGISTER_3D_VARIABLE_WITH_COMPONENTS( PHYSICAL_INTEGRATION_POINT_DISPLACEMENT )
KRATOS_REGISTER_VARIABLE( OTHER_NODE_ID )
KRATOS_REGISTER_VARIABLE( OTHER_ID )
KRATOS_REGISTER_VARIABLE( NUMBER_OF_PHYSICAL_POINTS )
}
} // namespace Kratos