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.
active_set_utilities.h
Go to the documentation of this file.
1 // KRATOS ______ __ __ _____ __ __ __
2 // / ____/___ ____ / /_____ ______/ /_/ ___// /________ _______/ /___ ___________ _/ /
3 // / / / __ \/ __ \/ __/ __ `/ ___/ __/\__ \/ __/ ___/ / / / ___/ __/ / / / ___/ __ `/ /
4 // / /___/ /_/ / / / / /_/ /_/ / /__/ /_ ___/ / /_/ / / /_/ / /__/ /_/ /_/ / / / /_/ / /
5 // \____/\____/_/ /_/\__/\__,_/\___/\__//____/\__/_/ \__,_/\___/\__/\__,_/_/ \__,_/_/ MECHANICS
6 //
7 // License: BSD License
8 // license: ContactStructuralMechanicsApplication/license.txt
9 //
10 // Main authors: Vicente Mataix Ferrandiz
11 //
12 
13 #pragma once
14 
15 // System includes
16 
17 // External includes
18 
19 // Project includes
20 #include "includes/model_part.h"
21 
22 namespace Kratos
23 {
26 
30 
34 
38 
45 namespace ActiveSetUtilities
46 {
49 
50  // Some geometrical definitions
52 
55 
57  using IndexType = std::size_t;
58 
60  using SizeType = std::size_t;
61 
65 
70  std::size_t KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ComputePenaltyFrictionlessActiveSet(ModelPart& rModelPart);
71 
78  array_1d<std::size_t, 2> KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ComputePenaltyFrictionalActiveSet(
79  ModelPart& rModelPart,
80  const bool PureSlip = false,
81  const SizeType EchoLevel = 0
82  );
83 
88  std::size_t KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ComputeALMFrictionlessActiveSet(ModelPart& rModelPart);
89 
94  std::size_t KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ComputeALMFrictionlessComponentsActiveSet(ModelPart& rModelPart);
95 
102  array_1d<std::size_t, 2> KRATOS_API(CONTACT_STRUCTURAL_MECHANICS_APPLICATION) ComputeALMFrictionalActiveSet(
103  ModelPart& rModelPart,
104  const bool PureSlip = false,
105  const SizeType EchoLevel = 0
106  );
107 
108 };// namespace ActiveSetUtilities
109 
110 } // namespace Kratos
Geometry base class.
Definition: geometry.h:71
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
BaseType CoordinatesArrayType
Definition: point.h:75
Short class definition.
Definition: array_1d.h:61
#define KRATOS_API(...)
Definition: kratos_export_api.h:40
This namespace includes some utilities used for contact active set computations.
static int EchoLevel
Definition: co_sim_EMPIRE_API.h:42
std::size_t ComputeALMFrictionlessActiveSet(ModelPart &rModelPart)
This function computes the active set for penalty frictionless cases.
Definition: active_set_utilities.cpp:175
std::size_t ComputePenaltyFrictionlessActiveSet(ModelPart &rModelPart)
This function computes the active set for penalty frictionless cases.
Definition: active_set_utilities.cpp:28
std::size_t IndexType
Index type definition.
Definition: active_set_utilities.h:57
array_1d< std::size_t, 2 > ComputePenaltyFrictionalActiveSet(ModelPart &rModelPart, const bool PureSlip, const SizeType EchoLevel)
This function computes the active set for penalty frictional cases.
Definition: active_set_utilities.cpp:68
std::size_t SizeType
Size type definition.
Definition: active_set_utilities.h:60
std::size_t ComputeALMFrictionlessComponentsActiveSet(ModelPart &rModelPart)
This function computes the active set for penalty frictionless cases.
Definition: active_set_utilities.cpp:217
array_1d< std::size_t, 2 > ComputeALMFrictionalActiveSet(ModelPart &rModelPart, const bool PureSlip, const SizeType EchoLevel)
This function computes the active set for penalty frictional cases.
Definition: active_set_utilities.cpp:265
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21