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_sparse_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) PerturbGeometrySparseUtility
38 {
39 public:
40 
43 
45 
46  typedef LinearSolverType::Pointer LinearSolverPointerType;
47 
49 
51 
54 
58 
60  PerturbGeometrySparseUtility( ModelPart& rInitialModelPart, LinearSolverPointerType pEigenSolver, Parameters Settings) :
61  PerturbGeometryBaseUtility(rInitialModelPart, Settings){
62  mpEigenSolver = pEigenSolver;
63  }
64 
67  = default;
68 
72 
79  int CreateRandomFieldVectors() override;
80 
82  std::string Info() const override
83  {
84  return "PerturbGeometrySparseUtility";
85  }
86 
88  void PrintInfo(std::ostream& rOStream) const override
89  {
90  rOStream << "PerturbGeometrySparseUtility";
91  }
92 
94  void PrintData(std::ostream& rOStream) const override
95  {
96  }
97 
99 
100 private:
103 
104  LinearSolverPointerType mpEigenSolver;
105 
108 
111 
113 
114  }; // Class PerturbGeometrySparseUtility
115 
117 
119 }
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
Base class for geometry perturbation utilities.
Definition: perturb_geometry_base_utility.h:37
This class generates a random field based on a sparse correlation matrix.
Definition: perturb_geometry_sparse_utility.h:38
PerturbGeometrySparseUtility(ModelPart &rInitialModelPart, LinearSolverPointerType pEigenSolver, Parameters Settings)
Constructor.
Definition: perturb_geometry_sparse_utility.h:60
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: perturb_geometry_sparse_utility.h:88
std::string Info() const override
Turn back information as a string.
Definition: perturb_geometry_sparse_utility.h:82
LinearSolverType::Pointer LinearSolverPointerType
Definition: perturb_geometry_sparse_utility.h:46
KRATOS_CLASS_POINTER_DEFINITION(PerturbGeometrySparseUtility)
Pointer definition of PerturbGeometrySparseUtility.
TSparseSpaceType::MatrixType SparseMatrixType
Definition: perturb_geometry_sparse_utility.h:50
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: perturb_geometry_sparse_utility.h:94
ModelPart::NodesContainerType::ContainerType ResultNodesContainerType
Definition: perturb_geometry_sparse_utility.h:48
LinearSolver< TSparseSpaceType, TDenseSpaceType > LinearSolverType
Definition: perturb_geometry_sparse_utility.h:44
~PerturbGeometrySparseUtility() override=default
Destructor.
TMatrixType MatrixType
The matrix type considered.
Definition: ublas_space.h:133
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
Configure::ContainerType ContainerType
Definition: transfer_utility.h:247