(1) | ### Import Applications #### |
(2) | # Structural Mechanics Application is for FEM analysis, in this scope used for the cable structures. |
(3) | from KratosMultiphysics.StructuralMechanicsApplication import structural_mechanics_analysis as structural_analysis |
(4) | # DEM Application is for DEM analysis; in this scope, it holds certain expressions for walls and can also deal with clustered particles. |
(5) | from KratosMultiphysics.DEMApplication import KratosDEMAnalysis as dem_analysis |
(6) | # Mapping Application is to allow a mapping between certain spaces; it is used to handle certain interfaces to make the procedures more generic. |
(7) | import KratosMultiphysics.MappingApplication as KratosMapping |
(8) | ### Define Problem Setup #### |
(9) | # model part for all faces/boundary walls |
(10) | mp_dem = dem_analysis.rigid_face_model_part |
(11) | # model part for all DEM particles |
(12) | mp_dem_particle = dem_analysis.spheres_model_part |
(13) | # Analysis model and model part for structural elements |
(14) | model = KratosMultiphysics.Model() |
(15) | mp_struct = model[“Structure.computing_domain”] |
(16) | # Create mapper and define relations. It relates the model parts of the walls in DEM to the cable structures in FEM |
(17) | mapper = KratosMapping.MapperFactory.CreateMapper(mp_dem, mp_struct, mapper_settings) |
(18) | # Create utility to optimize contact detection |
(19) | dem_mesh_moving_utility = DEMApplication.MoveMeshUtility() |
(20) | ### Initialize Application Setup #### |
(21) | # Initialize all necessary variables within the applications |
(22) | structural_analysis.Initialize() |
(23) | dem_analysis.Initialize() |