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.
perturb_geometry_subgrid_utility.h
Go to the documentation of this file.
1 // KRATOS ___| | | |
2 // \___ \ __| __| | | __| __| | | __| _` | |
3 // | | | | | ( | | | | ( | |
4 // _____/ \__|_| \__,_|\___|\__|\__,_|_| \__,_|_| MECHANICS
5 //
6 // License: BSD License
7 // license: StructuralMechanicsApplication/license.txt
8 //
9 // Main authors: Manuel Messmer
10 //
11 
12 #pragma once
13 
14 // System includes
15 
16 // External includes
17 
18 // Project includes
21 
22 namespace Kratos {
25 
28 
36 class KRATOS_API(STRUCTURAL_MECHANICS_APPLICATION) PerturbGeometrySubgridUtility
38 {
39 public:
40 
43 
45 
46  typedef LinearSolverType::Pointer LinearSolverPointerType;
47 
49 
52 
56 
58  PerturbGeometrySubgridUtility( ModelPart& rInitialModelPart, LinearSolverPointerType pEigenSolver, Parameters Settings) :
59  PerturbGeometryBaseUtility(rInitialModelPart, Settings){
60  mpEigenSolver = pEigenSolver;
61  mMinDistanceSubgrid = Settings["min_distance_subgrid"].GetDouble();
62  }
63 
66  = default;
67 
71 
78  int CreateRandomFieldVectors() override;
79 
83 
85  std::string Info() const override
86  {
87  return "PerturbGeometrySubgridUtility";
88  }
89 
91  void PrintInfo(std::ostream& rOStream) const override
92  {
93  rOStream << "PerturbGeometrySubgridUtility";
94  }
95 
97  void PrintData(std::ostream& rOStream) const override
98  {
99  }
100 
102 
103 private:
106 
107  LinearSolverPointerType mpEigenSolver;
108  double mMinDistanceSubgrid;
109 
112 
115 
117 
118  }; // Class PerturbGeometrySubgridUtility
119 
121 
123 }
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
Base class for all the linear solvers in Kratos.
Definition: linear_solver.h:65
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
This class provides to Kratos a data structure for I/O based on the standard of JSON.
Definition: kratos_parameters.h:59
double GetDouble() const
This method returns the double contained in the current Parameter.
Definition: kratos_parameters.cpp:657
Base class for geometry perturbation utilities.
Definition: perturb_geometry_base_utility.h:37
This class generates a random field based on a reduced correlation matrix.
Definition: perturb_geometry_subgrid_utility.h:38
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: perturb_geometry_subgrid_utility.h:91
LinearSolver< TDenseSpaceType, TDenseSpaceType > LinearSolverType
Definition: perturb_geometry_subgrid_utility.h:44
std::string Info() const override
Turn back information as a string.
Definition: perturb_geometry_subgrid_utility.h:85
~PerturbGeometrySubgridUtility() override=default
Destructor.
LinearSolverType::Pointer LinearSolverPointerType
Definition: perturb_geometry_subgrid_utility.h:46
ModelPart::NodesContainerType::ContainerType ResultNodesContainerType
Definition: perturb_geometry_subgrid_utility.h:48
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: perturb_geometry_subgrid_utility.h:97
PerturbGeometrySubgridUtility(ModelPart &rInitialModelPart, LinearSolverPointerType pEigenSolver, Parameters Settings)
Constructor.
Definition: perturb_geometry_subgrid_utility.h:58
KRATOS_CLASS_POINTER_DEFINITION(PerturbGeometrySubgridUtility)
Pointer definition of PerturbGeometrySubgridUtility.
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Configure::ContainerType ContainerType
Definition: transfer_utility.h:247