Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[GeoMechanicsApplication] Convert two stage line loads test to the orchestrator based analysis and test #13057

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is a copy of line_loads_in_stages/MaterialParameters.json. Also the file test.mdpa is a copy of the corresponding file in line_loads_in_stages/test.mdpa. I'm wondering whether it would be possible to share these files (i.e. to avoid having any copies)? Perhaps we could have a common subdirectory in line_loads_in_stages, where we move these two files to. And then we could have two more subdirectories in line_loads_in_stages: e.g. legacy and orchestrator. Those two subdirectories then contain the required ProjectParameters.json files. Such a structure also makes it clearer that for the orchestrator-based multi-stage analysis, we can keep the .mdpa and MaterialParameters.json files as-is (compared to the "legacy" approach).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you. The structure is done like that

Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"properties": [{
"model_part_name": "PorousDomain.Dummy_soil",
"properties_id": 1,
"Material": {
"constitutive_law": {
"name" : "GeoLinearElasticPlaneStrain2DLaw"
},
"Variables": {
"IGNORE_UNDRAINED" : false,
"YOUNG_MODULUS" : 10000,
"POISSON_RATIO" : 0.2,
"DENSITY_SOLID" : 0.0,
"DENSITY_WATER" : 0.0,
"POROSITY" : 0.3,
"BULK_MODULUS_SOLID" : 1.0e9,
"BULK_MODULUS_FLUID" : 2.0e6,
"PERMEABILITY_XX" : 4.5e-13,
"PERMEABILITY_YY" : 4.5e-13,
"PERMEABILITY_XY" : 0.0,
"DYNAMIC_VISCOSITY" : 8.90e-7,
"THICKNESS" : 1.0,
"BIOT_COEFFICIENT" : 1.0,
"RETENTION_LAW" : "SaturatedBelowPhreaticLevelLaw",
"SATURATED_SATURATION" : 1.0,
"RESIDUAL_SATURATION" : 1e-10,
"VAN_GENUCHTEN_AIR_ENTRY_PRESSURE" : 2.561,
"VAN_GENUCHTEN_GN" : 1.377,
"VAN_GENUCHTEN_GL" : 1.25,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpicking: I believe we don't need these input parameters, since we're not using the Van Genuchten retention law.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

"MINIMUM_RELATIVE_PERMEABILITY" : 0.0001
},
"Tables": {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

More nitpicking: I believe we can also get rid of this input parameter.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed

}
}]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,357 @@
{
"orchestrator" : {
"name" : "Orchestrators.KratosMultiphysics.SequentialOrchestrator",
"settings" : {
"echo_level" : 0,
"execution_list" : ["stage_1", "stage_2"],
"load_from_checkpoint" : null,
"stage_checkpoints" : true,
"stage_checkpoints_folder" : "auxiliar_files_for_python_unittest/orchestrators_files/checkpoints",
"output_validated_settings" : "test_sequential_orchestrator"
}
},
"stages" : {
"stage_1" : {
"stage_settings" : {
"analysis_stage": "Stages.KratosMultiphysics.GeoMechanicsApplication.geomechanics_analysis.GeoMechanicsAnalysis",
"problem_data": {
"problem_name": "test",
"start_time": 0.0,
"end_time": 1.0,
"echo_level": 1,
"parallel_type": "OpenMP",
"number_of_threads": 1
},
"solver_settings": {
"solver_type": "U_Pw",
"model_part_name": "PorousDomain",
"domain_size": 2,
"model_import_settings": {
"input_type": "mdpa",
"input_filename": "test"
},
"material_import_settings": {
"materials_filename": "MaterialParameters.json"
},
"time_stepping": {
"time_step": 1,
"max_delta_time_factor": 1000
},
"buffer_size": 2,
"echo_level": 1,
"clear_storage": false,
"compute_reactions": true,
"move_mesh_flag": false,
"reform_dofs_at_each_step": false,
"nodal_smoothing": false,
"block_builder": true,
"solution_type": "Quasi-Static",
"scheme_type": "Backward_Euler",
"reset_displacements": true,
"newmark_beta": 0.25,
"newmark_gamma": 0.5,
"newmark_theta": 0.5,
"rayleigh_m": 0.0,
"rayleigh_k": 0.0,
"strategy_type": "newton_raphson",
"convergence_criterion": "residual_criterion",
"displacement_relative_tolerance": 1.0E-4,
"displacement_absolute_tolerance": 1.0E-9,
"residual_relative_tolerance": 1.0E-4,
"residual_absolute_tolerance": 1.0E-9,
"water_pressure_relative_tolerance": 1.0E-4,
"water_pressure_absolute_tolerance": 1.0E-9,
"min_iterations": 6,
"max_iterations": 15,
"number_cycles": 100,
"reduction_factor": 0.5,
"increase_factor": 2.0,
"desired_iterations": 4,
"max_radius_factor": 10.0,
"min_radius_factor": 0.1,
"calculate_reactions": true,
"max_line_search_iterations": 5,
"first_alpha_value": 0.5,
"second_alpha_value": 1.0,
"min_alpha": 0.1,
"max_alpha": 2.0,
"line_search_tolerance": 0.5,
"rotation_dofs": true,
"linear_solver_settings": {
"solver_type": "bicgstab",
"tolerance": 1.0e-6,
"max_iteration": 1000,
"scaling": true,
"preconditioner_type": "ilu0"
},
"problem_domain_sub_model_part_list": ["Dummy_soil"],
"processes_sub_model_part_list": ["Bottom_fixed","Side_sliders","Phreatic_line","First_line_load"],
"body_domain_sub_model_part_list": ["Dummy_soil"]
},
"output_processes": {
"gid_output": [{
"python_module": "gid_output_process",
"kratos_module": "KratosMultiphysics",
"process_name": "GiDOutputProcess",
"Parameters": {
"model_part_name": "PorousDomain.porous_computational_model_part",
"output_name": "test_stage1",
"postprocess_parameters": {
"result_file_configuration": {
"gidpost_flags": {
"WriteDeformedMeshFlag": "WriteUndeformed",
"WriteConditionsFlag": "WriteElementsOnly",
"GiDPostMode": "GiD_PostAscii",
"MultiFileFlag": "SingleFile"
},
"file_label": "step",
"output_control_type": "step",
"output_interval": 1,
"body_output": true,
"node_output": false,
"skin_output": false,
"plane_output": [],
"nodal_results": ["REACTION"],
"gauss_point_results": []
},
"point_data_configuration": []
}
}
}]
},
"processes": {
"constraints_process_list": [{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Bottom_fixed",
"variable_name": "DISPLACEMENT",
"active": [true,true,true],
"is_fixed": [true,true,true],
"value": [0.0,0.0,0.0],
"table": [0,0,0]
}
},{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Side_sliders",
"variable_name": "DISPLACEMENT",
"active": [true,false,false],
"is_fixed": [true,false,false],
"value": [0.0,0.0,0.0],
"table": [0,0,0]
}
},{
"python_module": "apply_scalar_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyScalarConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Phreatic_line",
"variable_name": "WATER_PRESSURE",
"is_fixed": true,
"fluid_pressure_type": "Phreatic_Line",
"gravity_direction": 1,
"out_of_plane_direction": 2,
"first_reference_coordinate" : [0.0,0.0,0.0],
"second_reference_coordinate": [5.0,0.0,0.0],
"table": [0,0],
"pressure_tension_cut_off": 0.0,
"specific_weight": 0.0
}
}],
"loads_process_list": [{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.First_line_load",
"variable_name": "LINE_LOAD",
"active": [false,true,false],
"value": [0.0,-10.0,0.0],
"table": [0,0,0]
}
}],
"auxiliar_process_list": []
}
}
},
"stage_2" : {
"stage_settings" : {
"analysis_stage": "Stages.KratosMultiphysics.GeoMechanicsApplication.geomechanics_analysis.GeoMechanicsAnalysis",
"problem_data": {
"problem_name": "test",
"start_time": 0.0,
"end_time": 1.0,
"echo_level": 1,
"parallel_type": "OpenMP",
"number_of_threads": 1
},
"problem_data": {
"problem_name": "test",
"start_time": 0.0,
"end_time": 1.0,
"echo_level": 1,
"parallel_type": "OpenMP",
"number_of_threads": 1
},
"solver_settings": {
"solver_type": "U_Pw",
"model_part_name": "PorousDomain",
"domain_size": 2,
"model_import_settings": {
"input_type": "mdpa",
"input_filename": "test"
},
"material_import_settings": {
"materials_filename": "MaterialParameters.json"
},
"time_stepping": {
"time_step": 1,
"max_delta_time_factor": 1000
},
"buffer_size": 2,
"echo_level": 1,
"clear_storage": false,
"compute_reactions": true,
"move_mesh_flag": false,
"reform_dofs_at_each_step": false,
"nodal_smoothing": false,
"block_builder": true,
"solution_type": "Quasi-Static",
"scheme_type": "Backward_Euler",
"reset_displacements": true,
"newmark_beta": 0.25,
"newmark_gamma": 0.5,
"newmark_theta": 0.5,
"rayleigh_m": 0.0,
"rayleigh_k": 0.0,
"strategy_type": "newton_raphson",
"convergence_criterion": "residual_criterion",
"displacement_relative_tolerance": 1.0E-4,
"displacement_absolute_tolerance": 1.0E-9,
"residual_relative_tolerance": 1.0E-4,
"residual_absolute_tolerance": 1.0E-9,
"water_pressure_relative_tolerance": 1.0E-4,
"water_pressure_absolute_tolerance": 1.0E-9,
"min_iterations": 6,
"max_iterations": 15,
"number_cycles": 100,
"reduction_factor": 0.5,
"increase_factor": 2.0,
"desired_iterations": 4,
"max_radius_factor": 10.0,
"min_radius_factor": 0.1,
"calculate_reactions": true,
"max_line_search_iterations": 5,
"first_alpha_value": 0.5,
"second_alpha_value": 1.0,
"min_alpha": 0.1,
"max_alpha": 2.0,
"line_search_tolerance": 0.5,
"rotation_dofs": true,
"linear_solver_settings": {
"solver_type": "bicgstab",
"tolerance": 1.0e-6,
"max_iteration": 1000,
"scaling": true,
"preconditioner_type": "ilu0"
},
"problem_domain_sub_model_part_list": ["Dummy_soil"],
"processes_sub_model_part_list": ["Bottom_fixed","Side_sliders","Phreatic_line","Second_line_load"],
"body_domain_sub_model_part_list": ["Dummy_soil"]
},
"output_processes": {
"gid_output": [{
"python_module": "gid_output_process",
"kratos_module": "KratosMultiphysics",
"process_name": "GiDOutputProcess",
"Parameters": {
"model_part_name": "PorousDomain.porous_computational_model_part",
"output_name": "test_stage2",
"postprocess_parameters": {
"result_file_configuration": {
"gidpost_flags": {
"WriteDeformedMeshFlag": "WriteUndeformed",
"WriteConditionsFlag": "WriteElementsOnly",
"GiDPostMode": "GiD_PostAscii",
"MultiFileFlag": "SingleFile"
},
"file_label": "step",
"output_control_type": "step",
"output_interval": 1,
"body_output": true,
"node_output": false,
"skin_output": false,
"plane_output": [],
"nodal_results": ["REACTION"],
"gauss_point_results": []
},
"point_data_configuration": []
}
}
}]
},
"processes": {
"constraints_process_list": [{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Bottom_fixed",
"variable_name": "DISPLACEMENT",
"active": [true,true,true],
"is_fixed": [true,true,true],
"value": [0.0,0.0,0.0],
"table": [0,0,0]
}
},{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Side_sliders",
"variable_name": "DISPLACEMENT",
"active": [true,false,false],
"is_fixed": [true,false,false],
"value": [0.0,0.0,0.0],
"table": [0,0,0]
}
},{
"python_module": "apply_scalar_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyScalarConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Phreatic_line",
"variable_name": "WATER_PRESSURE",
"is_fixed": true,
"fluid_pressure_type": "Phreatic_Line",
"gravity_direction": 1,
"out_of_plane_direction": 2,
"first_reference_coordinate" : [0.0,0.0,0.0],
"second_reference_coordinate": [5.0,0.0,0.0],
"table": [0,0],
"pressure_tension_cut_off": 0.0,
"specific_weight": 0.0
}
}],
"loads_process_list": [{
"python_module": "apply_vector_constraint_table_process",
"kratos_module": "KratosMultiphysics.GeoMechanicsApplication",
"process_name": "ApplyVectorConstraintTableProcess",
"Parameters": {
"model_part_name": "PorousDomain.Second_line_load",
"variable_name": "LINE_LOAD",
"active": [false,true,false],
"value": [0.0,-20.0,0.0],
"table": [0,0,0]
}
}],
"auxiliar_process_list": []
}
}
}
}
}
Loading
Loading