KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
topology_optimization_application.h
Go to the documentation of this file.
1 // | / |
2 // ' / __| _` | __| _ \ __|
3 // . \ | ( | | ( |\__ `
4 // _|\_\_| \__,_|\__|\___/ ____/
5 // Multi-Physics
6 //
7 // License: BSD License
8 // Kratos default license: kratos/license.txt
9 //
10 // Main authors: Baumgärtner Daniel, https://github.com/dbaumgaertner
11 // Octaviano Malfavón Farías
12 // Eric Gonzales
13 // Philipp Hofer
14 // Erich Wehrle
15 #if !defined(KRATOS_TOPOLOGYOPTIMIZATION_APPLICATION_H_INCLUDED )
16 #define KRATOS_TOPOLOGYOPTIMIZATION_APPLICATION_H_INCLUDED
17 
20 #include "includes/define.h"
22 
23 namespace Kratos
24 {
25 
28 
29  // Variables definition with Python connection
30  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, YOUNGS_MODULUS_MIN)
31  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, YOUNGS_MODULUS_0 )
32  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, PENAL )
33  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, std::string, MAT_INTERP)
34  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, X_PHYS )
35  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, X_PHYS_OLD )
36  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, DCDX )
37  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, DVDX )
38  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, SOLID_VOID )
39  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, LOCAL_STRAIN_ENERGY )
40  KRATOS_DEFINE_APPLICATION_VARIABLE( TOPOLOGY_OPTIMIZATION_APPLICATION, double, INITIAL_ELEMENT_SIZE )
41 
42 
43 
46 
50 
54 
58 
60 
62  //class KratosTopologyOptimizationApplication : public KratosApplication
63  class KRATOS_API(TOPOLOGY_OPTIMIZATION_APPLICATION) KratosTopologyOptimizationApplication : public KratosApplication
64  {
65  public:
68 
69 
72 
73 
77 
80 
83 
84 
88 
89 
93 
94  void Register() override;
95 
96 
97 
101 
102 
106 
107 
111 
113  virtual std::string Info() const override
114  {
115  return "KratosTopologyOptimizationApplication";
116  }
117 
119  virtual void PrintInfo(std::ostream& rOStream) const override
120  {
121  rOStream << Info();
122  PrintData(rOStream);
123  }
124 
126  virtual void PrintData(std::ostream& rOStream) const override
127  {
129  rOStream << "Variables:" << std::endl;
131  rOStream << std::endl;
132  rOStream << "Elements:" << std::endl;
133  KratosComponents<Element>().PrintData(rOStream);
134  rOStream << std::endl;
135  rOStream << "Conditions:" << std::endl;
136  KratosComponents<Condition>().PrintData(rOStream);
137  }
138 
142 
144 
145  protected:
148 
152 
156 
160 
164 
168 
172 
174 
175  private:
178 
182 
183  //small_displacement
184  const SmallDisplacementSIMPElement mSmallDisplacementSIMPElement3D3N;
185  const SmallDisplacementSIMPElement mSmallDisplacementSIMPElement3D4N;
186  const SmallDisplacementSIMPElement mSmallDisplacementSIMPElement3D8N;
187 
191 
195 
199 
203 
207 
210 
213 
215 
216  }; // Class KratosTopologyOptimizationApplication
217 
219 
222 
226 
228 
229 } // namespace Kratos.
230 
231 #endif // KRATOS_TOPOLOGYOPTIMIZATION_APPLICATION_H_INCLUDED defined
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
This class defines the interface with kernel for all applications in Kratos.
Definition: kratos_application.h:91
Definition: kratos_components.h:253
virtual void PrintData(std::ostream &rOStream) const
Print object's data.
Definition: kratos_components.h:403
KratosComponents class encapsulates a lookup table for a family of classes in a generic way.
Definition: kratos_components.h:49
Short class definition.
Definition: topology_optimization_application.h:64
virtual std::string Info() const override
Turn back information as a string.
Definition: topology_optimization_application.h:113
virtual void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: topology_optimization_application.h:119
virtual void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: topology_optimization_application.h:126
KRATOS_CLASS_POINTER_DEFINITION(KratosTopologyOptimizationApplication)
Pointer definition of KratosTopologyOptimizationApplication.
~KratosTopologyOptimizationApplication() override
Destructor.
Definition: topology_optimization_application.h:82
Topology Optimization Small Displacement Element for 3D geometries.
Definition: small_displacement_simp_element.h:52
#define KRATOS_WATCH(variable)
Definition: define.h:806
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
KRATOS_DEFINE_APPLICATION_VARIABLE(CHIMERA_APPLICATION, double, CHIMERA_DISTANCE)
KRATOS_API_EXTERN template class KratosComponents< Condition >
Definition: condition.h:1191
KRATOS_API_EXTERN template class KratosComponents< Element >
Definition: element.h:1240