Skip to content

Commit

Permalink
Merge branch 'master' into core/geometry-container-with-pvs
Browse files Browse the repository at this point in the history
  • Loading branch information
rubenzorrilla committed Nov 21, 2024
2 parents ab05c3c + 2d0705e commit 491cad1
Show file tree
Hide file tree
Showing 203 changed files with 134,570 additions and 911 deletions.
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ if(POLICY CMP0135)
endif(POLICY CMP0135)

# Set here the version number **** only update upon tagging a release!
set (KratosMultiphysics_MAJOR_VERSION 9)
set (KratosMultiphysics_MINOR_VERSION 5)
set (KratosMultiphysics_MAJOR_VERSION 10)
set (KratosMultiphysics_MINOR_VERSION 0)
set (KratosMultiphysics_PATCH_VERSION 0)

# If KRATOS_SOURCE_DIR is not defined use the CMAKE_SOURCE_DIR
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

[![Release][release-image]][releases]
<a href="https://github.com/KratosMultiphysics/Kratos/releases/latest"><img src="https://img.shields.io/github/release-date/KratosMultiphysics/Kratos?label="></a>
<a href="https://github.com/KratosMultiphysics/Kratos/compare/Release-9.5...master"><img src="https://img.shields.io/github/commits-since/KratosMultiphysics/Kratos/latest?label=commits%20since"></a>
<a href="https://github.com/KratosMultiphysics/Kratos/compare/Release-10.1...master"><img src="https://img.shields.io/github/commits-since/KratosMultiphysics/Kratos/latest?label=commits%20since"></a>
<a href="https://github.com/KratosMultiphysics/Kratos/commit/master"><img src="https://img.shields.io/github/last-commit/KratosMultiphysics/Kratos?label=latest%20commit"></a>

[![PyPI pyversions](https://img.shields.io/pypi/pyversions/KratosMultiphysics.svg)](https://pypi.org/project/KratosMultiphysics/)
[![Downloads](https://pepy.tech/badge/KratosMultiphysics/month)](https://pepy.tech/project/KratosMultiphysics)

[release-image]: https://img.shields.io/badge/release-9.5-green.svg?style=flat
[release-image]: https://img.shields.io/badge/release-10.1-green.svg?style=flat
[releases]: https://github.com/KratosMultiphysics/Kratos/releases

[license-image]: https://img.shields.io/badge/license-BSD-green.svg?style=flat
Expand Down Expand Up @@ -159,4 +159,4 @@ Some users of the technologies developed in Kratos are:
Please, use the following references when citing Kratos in your work.
- [Dadvand, P., Rossi, R. & Oñate, E. An Object-oriented Environment for Developing Finite Element Codes for Multi-disciplinary Applications. Arch Computat Methods Eng 17, 253–297 (2010). https://doi.org/10.1007/s11831-010-9045-2](https://doi.org/10.1007/s11831-010-9045-2)
- [Dadvand, P., Rossi, R., Gil, M., Martorell, X., Cotela, J., Juanpere, E., Idelsohn, S., Oñate, E. (2013). Migration of a generic multi-physics framework to HPC environments. Computers & Fluids. 80. 301–309. 10.1016/j.compfluid.2012.02.004.](10.1016/j.compfluid.2012.02.004)
- [Vicente Mataix Ferrándiz, Philipp Bucher, Rubén Zorrilla, Suneth Warnakulasuriya, Riccardo Rossi, Alejandro Cornejo, jcotela, Carlos Roig, Josep Maria, tteschemacher, Miguel Masó, Guillermo Casas, Marc Núñez, Pooyan Dadvand, Salva Latorre, Ignasi de Pouplana, Joaquín Irazábal González, AFranci, Ferran Arrufat, riccardotosi, Aditya Ghantasala, Klaus Bernd Sautter, Peter Wilson, dbaumgaertner, Bodhinanda Chandra, Armin Geiser, Inigo Lopez, lluís, jgonzalezusua, Javi Gárate. (2024). KratosMultiphysics/Kratos: Release 9.5 (v9.5). Zenodo. https://doi.org/10.5281/zenodo.3234644](https://zenodo.org/records/6926179)
- [Vicente Mataix Ferrándiz, Philipp Bucher, Rubén Zorrilla, Suneth Warnakulasuriya, Riccardo Rossi, Alejandro Cornejo, jcotela, Carlos Roig, Josep Maria, tteschemacher, Miguel Masó, Guillermo Casas, Marc Núñez, Pooyan Dadvand, Salva Latorre, Ignasi de Pouplana, Joaquín Irazábal González, AFranci, Ferran Arrufat, riccardotosi, Aditya Ghantasala, Klaus Bernd Sautter, Peter Wilson, dbaumgaertner, Bodhinanda Chandra, Armin Geiser, Inigo Lopez, lluís, jgonzalezusua, Javi Gárate. (2024). KratosMultiphysics/Kratos: Release 10.1 (v10.1). Zenodo. https://doi.org/10.5281/zenodo.3234644](https://zenodo.org/records/6926179)
99 changes: 99 additions & 0 deletions applications/ConstitutiveLawsApplication/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@

# Constitutive Laws Application

| **Application** | **Description** | **Status** | **Authors** |
|:---------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------:|:-----------:|
| `ConstitutiveLawsApplication` | The *Constitutive Laws Application* contains a series of constitutive laws implementations within *Kratos Multiphysics*. | <img src="https://img.shields.io/badge/Status-%F0%9F%9A%80%20Actively%20developed-Green" width="300px"> | Alejandro Cornejo Velázquez *([email protected] )* <br /> Sergio Jimenez Reyes *([email protected])* <br /> Riccardo Rossi *([email protected])* <br /> Rubén Zorrilla Martínez *([email protected])* <br /> Vicente Mataix Ferrándiz *([email protected])* |


The application includes tests to check the proper functioning of the application.

## 😎 Features:

- **Constitutive laws**
* *Orthotropic law (Plane stress)*
* *Hyperelastic laws*
* Neo-Hookean
* Kirchhoff
* *Small displacement isotropic plasticity laws (just 3D)*
* Combining:
* Yield surfaces:
* VonMises
* ModifiedMohrCoulomb
* Tresca
* DruckerPrager
* Plastic potential:
* VonMises
* ModifiedMohrCoulomb
* Tresca
* DruckerPrager
* Complete list:
* SmallStrainIsotropicPlasticity3DVonMisesVonMises
* SmallStrainIsotropicPlasticity3DVonMisesModifiedMohrCoulomb
* SmallStrainIsotropicPlasticity3DVonMisesDruckerPrager
* SmallStrainIsotropicPlasticity3DVonMisesTresca
* SmallStrainIsotropicPlasticity3DModifiedMohrCoulombVonMises
* SmallStrainIsotropicPlasticity3DModifiedMohrCoulombModifiedMohrCoulomb
* SmallStrainIsotropicPlasticity3DModifiedMohrCoulombDruckerPrager
* SmallStrainIsotropicPlasticity3DModifiedMohrCoulombTresca
* SmallStrainIsotropicPlasticity3DTrescaVonMises
* SmallStrainIsotropicPlasticity3DTrescaModifiedMohrCoulomb
* SmallStrainIsotropicPlasticity3DTrescaDruckerPrager
* SmallStrainIsotropicPlasticity3DTrescaTresca
* SmallStrainIsotropicPlasticity3DDruckerPragerVonMises
* SmallStrainIsotropicPlasticity3DDruckerPragerModifiedMohrCoulomb
* SmallStrainIsotropicPlasticity3DDruckerPragerDruckerPrager
* SmallStrainIsotropicPlasticity3DDruckerPragerTresca
* *Small displacement isotropic damage laws (just 3D)*
* Combining:
* Yield surfaces:
* VonMises
* ModifiedMohrCoulomb
* Tresca
* DruckerPrager
* Rankine
* SimoJu
* Damage potential:
* VonMises
* ModifiedMohrCoulomb
* Tresca
* DruckerPrager
* Complete list:
* SmallStrainIsotropicDamage3DVonMisesVonMises
* SmallStrainIsotropicDamage3DVonMisesModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DVonMisesDruckerPrager
* SmallStrainIsotropicDamage3DVonMisesTresca
* SmallStrainIsotropicDamage3DModifiedMohrCoulombVonMises
* SmallStrainIsotropicDamage3DModifiedMohrCoulombModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DModifiedMohrCoulombDruckerPrager
* SmallStrainIsotropicDamage3DModifiedMohrCoulombTresca
* SmallStrainIsotropicDamage3DTrescaVonMises
* SmallStrainIsotropicDamage3DTrescaModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DTrescaDruckerPrager
* SmallStrainIsotropicDamage3DTrescaTresca
* SmallStrainIsotropicDamage3DDruckerPragerVonMises
* SmallStrainIsotropicDamage3DDruckerPragerModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DDruckerPragerDruckerPrager
* SmallStrainIsotropicDamage3DDruckerPragerTresca
* SmallStrainIsotropicDamage3DRankineVonMises
* SmallStrainIsotropicDamage3DRankineModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DRankineDruckerPrager
* SmallStrainIsotropicDamage3DRankineTresca
* SmallStrainIsotropicDamage3DSimoJuVonMises
* SmallStrainIsotropicDamage3DSimoJuModifiedMohrCoulomb
* SmallStrainIsotropicDamage3DSimoJuDruckerPrager
* SmallStrainIsotropicDamage3DSimoJuTresca

- **Utilities**
* *Generic constitutive laws utilities*
* *Tangent operator AD*

- **Processes**
* *Automatic initial damage*
* *Advance in time HCF*

- **Several python unittest, including Validation tests, and several cpp tests**

## ⚙️ Examples:

Examples can be found [in the same folder as the *Structural Mechanics Application*](https://github.com/KratosMultiphysics/Examples/tree/master/structural_mechanics).
34 changes: 17 additions & 17 deletions applications/ContactStructuralMechanicsApplication/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,39 @@ The application includes tests to check the proper functioning of the applicatio

## 😎 Features:

- *Mesh tying conditions based in mortar formulation*
- **Mesh tying conditions based in mortar formulation**

- *Augmented Lagrangian contact conditions based in mortar formulation*
- **Augmented Lagrangian contact conditions based in mortar formulation**

* Frictionless formulation
* *Frictionless formulation*

* Frictional formulation
* *Frictional formulation*

- *Penalty contact conditions based in mortar formulation*
- **Penalty contact conditions based in mortar formulation**

* Frictionless formulation
* *Frictionless formulation*

* Frictional
* *Frictional formulation*

- *Simplified **MPC** conditions based in mortar formulation. With the mortar formulation the weight are computed, allowing to compute a Simplified *NTN* and a simplified *NTS**
- **Simplified **MPC** conditions based in mortar formulation. With the mortar formulation the weight are computed, allowing to compute a Simplified *NTN* and a simplified *NTS***

* Frictionless formulation
* *Frictionless formulation*

* Frictional formulation
* *Frictional formulation*

* Mesh tying formulation, with tension checking
* *Mesh tying formulation, with tension checking*

- *Self-contact compatible*
- **Self-contact compatible**

- *Strategies, processes, solvers and convergence criterias used by the contact formulation*
- **Strategies, processes, solvers and convergence criterias used by the contact formulation**

- *Several strategies for adaptive remeshing*
- **Several strategies for adaptive remeshing**

- *The application includes search utilities in order to create the contact conditions*
- **The application includes search utilities in order to create the contact conditions**

- *Frictional laws (**WIP**) in order to consider different types of frictional behaviour*
- **Frictional laws (**WIP**) in order to consider different types of frictional behaviour**

- *+115 Python unittest, including Validation tests, and +85 cpp tests*
- **+115 Python unittest, including Validation tests, and +85 cpp tests**

## ⚙️ Examples:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,15 @@ Condition::Pointer UPwCondition<TDim, TNumNodes>::Create(IndexType
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new UPwCondition(NewId, GetGeometry().Create(ThisNodes), pProperties));
return this->Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

template <unsigned int TDim, unsigned int TNumNodes>
Condition::Pointer UPwCondition<TDim, TNumNodes>::Create(IndexType NewId,
GeometryType::Pointer pGeom,
PropertiesType::Pointer pProperties) const
{
return make_intrusive<UPwCondition<TDim, TNumNodes>>(NewId, pGeom, pProperties);
}

template <unsigned int TDim, unsigned int TNumNodes>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) UPwCondition : public Condition
Condition::Pointer Create(IndexType NewId,
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const override;
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;

void GetDofList(DofsVectorType& rConditionDofList, const ProcessInfo&) const override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,13 @@ AxisymmetricLineNormalFluidFlux2DDiffOrderCondition::AxisymmetricLineNormalFluid
Condition::Pointer AxisymmetricLineNormalFluidFlux2DDiffOrderCondition::Create(
IndexType NewId, NodesArrayType const& ThisNodes, PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new AxisymmetricLineNormalFluidFlux2DDiffOrderCondition(
NewId, GetGeometry().Create(ThisNodes), pProperties));
return Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

Condition::Pointer AxisymmetricLineNormalFluidFlux2DDiffOrderCondition::Create(
IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const
{
return make_intrusive<AxisymmetricLineNormalFluidFlux2DDiffOrderCondition>(NewId, pGeom, pProperties);
}

double AxisymmetricLineNormalFluidFlux2DDiffOrderCondition::CalculateIntegrationCoefficient(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) AxisymmetricLineNormalFluidFlux2DDif
Condition::Pointer Create(IndexType NewId,
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const override;
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;

std::string Info() const override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,14 @@ Condition::Pointer AxisymmetricLineNormalLoad2DDiffOrderCondition::Create(IndexT
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new AxisymmetricLineNormalLoad2DDiffOrderCondition(
NewId, GetGeometry().Create(ThisNodes), pProperties));
return Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

Condition::Pointer AxisymmetricLineNormalLoad2DDiffOrderCondition::Create(IndexType NewId,
GeometryType::Pointer pGeom,
PropertiesType::Pointer pProperties) const
{
return make_intrusive<AxisymmetricLineNormalLoad2DDiffOrderCondition>(NewId, pGeom, pProperties);
}

double AxisymmetricLineNormalLoad2DDiffOrderCondition::CalculateIntegrationCoefficient(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) AxisymmetricLineNormalLoad2DDiffOrde
Condition::Pointer Create(IndexType NewId,
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const override;
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;

std::string Info() const override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,14 @@ Condition::Pointer GeneralUPwDiffOrderCondition::Create(IndexType
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new GeneralUPwDiffOrderCondition(NewId, GetGeometry().Create(ThisNodes), pProperties));
return Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

Condition::Pointer GeneralUPwDiffOrderCondition::Create(IndexType NewId,
GeometryType::Pointer pGeom,
PropertiesType::Pointer pProperties) const
{
return make_intrusive<GeneralUPwDiffOrderCondition>(NewId, pGeom, pProperties);
}

void GeneralUPwDiffOrderCondition::Initialize(const ProcessInfo& rCurrentProcessInfo)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) GeneralUPwDiffOrderCondition : publi
Condition::Pointer Create(IndexType NewId,
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const override;
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;

void Initialize(const ProcessInfo& rCurrentProcessInfo) override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,14 @@ Condition::Pointer LineLoad2DDiffOrderCondition::Create(IndexType
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new LineLoad2DDiffOrderCondition(NewId, GetGeometry().Create(ThisNodes), pProperties));
return Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

Condition::Pointer LineLoad2DDiffOrderCondition::Create(IndexType NewId,
GeometryType::Pointer pGeom,
PropertiesType::Pointer pProperties) const
{
return make_intrusive<LineLoad2DDiffOrderCondition>(NewId, pGeom, pProperties);
}

void LineLoad2DDiffOrderCondition::CalculateConditionVector(ConditionVariables& rVariables, unsigned int PointNumber)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ class KRATOS_API(GEO_MECHANICS_APPLICATION) LineLoad2DDiffOrderCondition : publi
Condition::Pointer Create(IndexType NewId,
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const override;
Condition::Pointer Create(IndexType NewId, GeometryType::Pointer pGeom, PropertiesType::Pointer pProperties) const override;

std::string Info() const override;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,14 @@ Condition::Pointer LineNormalFluidFlux2DDiffOrderCondition::Create(IndexType
NodesArrayType const& ThisNodes,
PropertiesType::Pointer pProperties) const
{
return Condition::Pointer(new LineNormalFluidFlux2DDiffOrderCondition(
NewId, GetGeometry().Create(ThisNodes), pProperties));
return Create(NewId, GetGeometry().Create(ThisNodes), pProperties);
}

Condition::Pointer LineNormalFluidFlux2DDiffOrderCondition::Create(IndexType NewId,
GeometryType::Pointer pGeom,
PropertiesType::Pointer pProperties) const
{
return make_intrusive<LineNormalFluidFlux2DDiffOrderCondition>(NewId, pGeom, pProperties);
}

void LineNormalFluidFlux2DDiffOrderCondition::CalculateConditionVector(ConditionVariables& rVariables,
Expand Down
Loading

0 comments on commit 491cad1

Please sign in to comment.