Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions iga/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
# Iga Examples

This folder contains examples related to Isogeometric Analysis in Kratos.

They are realized using the IgaApplication

The Examples are continuously updated and extended

## Use Cases
- [External Boundary Circle (NURBS)](https://github.com/KratosMultiphysics/Examples/blob/master/iga/use_cases/external_boundary_circle_with_nurbs/README.md)
- [IGA Single-Patch Shell in Membrane Action with Weak Supports and Line Load](https://github.com/KratosMultiphysics/Examples/blob/master/iga/use_cases/iga_shell_3p_single_patch/README.md)
- [3D Laplacian on an Embedded Cube with SBM](https://github.com/KratosMultiphysics/Examples/blob/master/iga/use_cases/laplacian_3d_cube_sbm/README.md)

## Validation Cases

# Use Cases
- [Buckling Analysis - Single Patch - Cantilever Beam](https://github.com/KratosMultiphysics/Examples/blob/master/iga/validation/buckling_analysis_single_patch_cantilever_beam/README.md)
- [Geometric Linear Analysis - Single Patch - Scordelis-Lo Roof](https://github.com/KratosMultiphysics/Examples/blob/master/iga/validation/geometric_linear_analysis_single_patch_scordelis_lo_roof/README.md)
- [Geometric Linear Analysis - Trimmed Patch - Plate with Hole](https://github.com/KratosMultiphysics/Examples/blob/master/iga/validation/geometric_linear_analysis_trimmed_patch_plate_with_hole/README.md)
- [Geometric Non-Linear Analysis - Multi Patch - Cantilever Beam](https://github.com/KratosMultiphysics/Examples/blob/master/iga/validation/geometric_nonlinear_analysis_multi_patch_cantilever_beam/README.md)
- [Geometric Non-Linear Analysis - Single Patch - Cantilever Beam](https://github.com/KratosMultiphysics/Examples/blob/master/iga/validation/geometric_nonlinear_analysis_single_patch_cantilever_beam/README.md)
5 changes: 5 additions & 0 deletions iga/validation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,8 @@

This folder contains the validation cases:

- [Buckling Analysis - Single Patch - Cantilever Beam](buckling_analysis_single_patch_cantilever_beam/README.md)
- [Geometric Linear Analysis - Single Patch - Scordelis-Lo Roof](geometric_linear_analysis_single_patch_scordelis_lo_roof/README.md)
- [Geometric Linear Analysis - Trimmed Patch - Plate with Hole](geometric_linear_analysis_trimmed_patch_plate_with_hole/README.md)
- [Geometric Non-Linear Analysis - Multi Patch - Cantilever Beam](geometric_nonlinear_analysis_multi_patch_cantilever_beam/README.md)
- [Geometric Non-Linear Analysis - Single Patch - Cantilever Beam](geometric_nonlinear_analysis_single_patch_cantilever_beam/README.md)
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
# Buckling Analysis - Single Patch - Cantilever Beam

**Author:** Aakash Ravichandran

**Kratos version:** 10.2

**Source files:** [Buckling Analysis - Single Patch - Cantilever Beam](https://github.com/KratosMultiphysics/Examples/tree/master/iga/validation/buckling_analysis_single_patch_cantilever_beam/source)

## Problem definition

This example presents the validation of buckling analysis in Kratos with Isogeometric Analysis.

<div align="center">
<img src="data/Reference_Model.png" alt="Displacement" width="600">

*Structural System [1]*
</div>


The cantilever beam is modeled using single NURBS patch with the Shell3pElement. The CAD model is constructed with single span B-spline surfaces and has a curve degree of 2 in both directions of the plane. Additional refinement is applied in Kratos, by increasing the curve degree to 4 in both axes and inserting 4 knots in the width and 20 knots along the length of the beam.

## Results

The buckling load factors are shown in table below. The corresponding buckling modes are shown in image below.

<div align="center">

| | Reference | Kratos |
| :--- | :--- | :--- |
| $\lambda_{cr}^{(1)}$ | 4.1123 | 4.06977 |
| $\lambda_{cr}^{(2)}$ | 16.449 | 16.1693 |
| $\lambda_{cr}^{(3)}$ | 37.011 | 36.6759 |
| $\lambda_{cr}^{(4)}$ | 102.81 | 102.106 |

</div>

| Buckling Mode Shape 1 | Buckling Mode Shape 2 |
| :---: | :---: |
| ![Buckling Mode Shape 1](data/Buckling_Mode_1.png) | ![Buckling Mode Shape 2](data/Buckling_Mode_2.png) |

| Buckling Mode Shape 3 | Buckling Mode Shape 4 |
| :---: | :---: |
| ![Buckling Mode Shape 3](data/Buckling_Mode_3.png) | ![Buckling Mode Shape 4](data/Buckling_Mode_4.png) |



## References

1. Altair Engineering, Inc. (2026). *OS-V: 0080 Buckling of Shells and Composites with Offset*. In Altair OptiStruct Verification Problems. [link](https://help.altair.com/hwsolvers/os/topics/solvers/os/buckling_of_shells_and_composites_with_offset_verification_r.htm)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
{
"problem_data": {
"problem_name": "Buckling_Analysis",
"echo_level": 0,
"parallel_type": "OpenMP",
"start_time": 0,
"end_time": 0.1
},
"solver_settings": {
"model_part_name": "IgaModelPart",
"domain_size": 1,
"echo_level": 1,
"buffer_size": 2,
"analysis_type": "linear",
"model_import_settings": {
"input_type": "use_input_model_part"
},
"material_import_settings": {
"materials_filename": "materials.json"
},
"time_stepping": {
"time_step": 1
},
"rotation_dofs": false,
"reform_dofs_at_each_step": false,
"line_search": false,
"compute_reactions": true,
"clear_storage": false,
"move_mesh_flag": true,
"convergence_criterion": "residual_criterion",
"displacement_relative_tolerance": 0.0001,
"displacement_absolute_tolerance": 1E-09,
"residual_relative_tolerance": 0.0001,
"residual_absolute_tolerance": 1E-09,
"max_iteration": 1,
"builder_and_solver_settings" : {
"advanced_settings": {},
"use_block_builder": true,
"use_lagrange_BS": false
},
"solver_type": "prebuckling",
"buckling_settings" : {
"initial_load_increment" : 1.0,
"small_load_increment" : 0.0005,
"path_following_step" : 0.5,
"convergence_ratio" : 0.05,
"make_matrices_symmetric" : true
},
"eigensolver_settings" : {
"solver_type" : "eigen_eigensystem",
"max_iteration" : 1000,
"tolerance" : 1e-6,
"number_of_eigenvalues" : 5,
"echo_level" : 1
},
"auxiliary_variables_list": [],
"auxiliary_dofs_list": [],
"auxiliary_reaction_list": []
},
"modelers": [
{
"modeler_name": "CadIoModeler",
"Parameters": {
"echo_level": 0,
"cad_model_part_name": "IgaModelPart",
"geometry_file_name": "geometry.cad.json",
"output_geometry_file_name": "Buckling_Analysis_kratos_0.georhino.json"
}
},
{
"modeler_name": "RefinementModeler",
"Parameters": {
"echo_level": 0,
"physics_file_name": "refinements.iga.json"
}
},
{
"modeler_name": "IgaModeler",
"Parameters": {
"echo_level": 0,
"cad_model_part_name": "IgaModelPart",
"analysis_model_part_name": "IgaModelPart",
"physics_file_name": "physics.iga.json"
}
}
],
"processes": {
"additional_processes": [
{
"kratos_module": "IgaApplication",
"python_module": "output_quadrature_domain_process",
"Parameters": {
"output_file_name": "Buckling_Analysis_kratos_shell_1_integrationdomain.json",
"model_part_name": "IgaModelPart.StructuralAnalysis_1",
"output_geometry_elements": true,
"output_geometry_conditions": false
}
},
{
"kratos_module": "IgaApplication",
"python_module": "output_quadrature_domain_process",
"Parameters": {
"output_file_name": "Buckling_Analysis_kratos_support_2_integrationdomain.json",
"model_part_name": "IgaModelPart.Support_2",
"output_geometry_elements": false,
"output_geometry_conditions": true
}
},
{
"kratos_module": "IgaApplication",
"python_module": "output_eigen_values_process",
"Parameters": {
"output_file_name": "Buckling_Analysis_kratos_eigen_values.post.res",
"model_part_name": "IgaModelPart"
}
}
],
"dirichlet_process_list": [
{
"kratos_module": "KratosMultiphysics",
"python_module": "assign_vector_variable_process",
"Parameters": {
"model_part_name": "IgaModelPart.Support_2",
"variable_name": "DISPLACEMENT",
"value": [
0,
0,
0
],
"interval": [
0,
"End"
]
}
},
{
"kratos_module": "KratosMultiphysics",
"python_module": "assign_vector_variable_process",
"Parameters": {
"model_part_name": "IgaModelPart.Support_2_Rotational",
"variable_name": "DISPLACEMENT",
"value": [
0,
0,
0
],
"interval": [
0,
"End"
]
}
}
],
"neumann_process_list": [
{
"kratos_module": "KratosMultiphysics",
"python_module": "assign_vector_variable_to_conditions_process",
"Parameters": {
"model_part_name": "IgaModelPart.Load_3",
"variable_name": "DEAD_LOAD",
"value": [
-5,
0,
0
],
"interval": [
0,
"End"
]
}
}
]
},
"output_processes": {
"output_process_list": []
}
}
Loading
Loading