22# Project Parameters
33
44proc CDEM::write::getParametersDict { } {
5- set project_parameters_dict [dict create ]
5+ set project_parameters_dict [DEM::write::getParametersDict ]
66
7- if {$::Model::SpatialDimension eq " 2D" } {set dimension [expr 2]
8- } else {set dimension [expr 3]}
9- dict set project_parameters_dict " Dimension" [expr $dimension ]
10- dict set project_parameters_dict " PeriodicDomainOption" [write::getValue Boundingbox PeriodicDomain]
11- dict set project_parameters_dict " BoundingBoxOption" [write::getValue Boundingbox UseBB]
12- dict set project_parameters_dict " AutomaticBoundingBoxOption" [write::getValue Boundingbox AutomaticBB]
13- dict set project_parameters_dict " BoundingBoxEnlargementFactor" [write::getValue Boundingbox BBFactor]
14- dict set project_parameters_dict " BoundingBoxStartTime" [write::getValue Boundingbox StartTime]
15- dict set project_parameters_dict " BoundingBoxStopTime" [write::getValue Boundingbox StopTime]
16- dict set project_parameters_dict " BoundingBoxMaxX" [write::getValue Boundingbox MaxX]
17- dict set project_parameters_dict " BoundingBoxMaxY" [write::getValue Boundingbox MaxY]
18- dict set project_parameters_dict " BoundingBoxMaxZ" [write::getValue Boundingbox MaxZ]
19- dict set project_parameters_dict " BoundingBoxMinX" [write::getValue Boundingbox MinX]
20- dict set project_parameters_dict " BoundingBoxMinY" [write::getValue Boundingbox MinY]
21- dict set project_parameters_dict " BoundingBoxMinZ" [write::getValue Boundingbox MinZ]
22-
23- # dem_inlet_option
24- set numinlets [llength [DEM::write::GetInletGroups]]
25- if {$numinlets == 0} {
26- set dem_inlet_option " false"
27- } else {
28- set dem_inlet_option " true"
29- }
30- dict set project_parameters_dict " dem_inlet_option" $dem_inlet_option
31-
32- # Gravity
33- lassign [DEM::write::GetGravity] gx gy gz
34- # Add data to the parameters_dict
35- dict set project_parameters_dict " GravityX" $gx
36- dict set project_parameters_dict " GravityY" $gy
37- dict set project_parameters_dict " GravityZ" $gz
38-
39- # Advanced option are disabled
40- dict set project_parameters_dict " RotationOption" [write::getValue AdvOptions CalculateRotations]
41- dict set project_parameters_dict " CleanIndentationsOption" [write::getValue AdvOptions CleanIndentations]
42- set strategy_parameters_dict [dict create]
43-
44- # set ElementType [::wkcf::GetElementType] # TODO: check old ::wkcf::GetElementType functionalities if required
457 set ElementType SphericContPartDEMElement3D
468 if {$ElementType eq " SphericPartDEMElement3D" || $ElementType eq " CylinderPartDEMElement2D" } {
479 set dem_strategy " sphere_strategy"
@@ -57,10 +19,8 @@ proc CDEM::write::getParametersDict { } {
5719 set dem_strategy " ice_continuum_sphere_strategy"
5820 }
5921
60-
61- dict set strategy_parameters_dict " RemoveBallsInitiallyTouchingWalls" [write::getValue AdvOptions RemoveParticlesInWalls]
62- dict set strategy_parameters_dict " strategy" $dem_strategy
63- dict set project_parameters_dict " solver_settings" $strategy_parameters_dict
22+ dict set project_parameters_dict " solver_settings" " strategy" $dem_strategy
23+ dict set project_parameters_dict " ElementType" $ElementType
6424
6525 dict set project_parameters_dict " DeltaOption" [write::getValue AdvOptions DeltaOption]
6626 dict set project_parameters_dict " SearchTolerance" [write::getValue AdvOptions TangencyToleranceValueAbsolute]
@@ -71,110 +31,35 @@ proc CDEM::write::getParametersDict { } {
7131 dict set project_parameters_dict " ComputeStressTensorOption" [write::getValue AdvOptions ComputeStressTensorOption]
7232 dict set project_parameters_dict " MaxAmplificationRatioOfSearchRadius" 1000
7333
74- dict set project_parameters_dict " VirtualMassCoefficient" [write::getValue AdvOptions VirtualMassCoef]
75- dict set project_parameters_dict " RollingFrictionOption" [write::getValue AdvOptions RollingFriction]
76- dict set project_parameters_dict " GlobalDamping" [write::getValue AdvOptions GlobalDamping]
77- dict set project_parameters_dict " ContactMeshOption" [write::getValue BondElem ContactMeshOption]
78- dict set project_parameters_dict " OutputFileType" [write::getValue GiDOptions GiDPostMode]
79- dict set project_parameters_dict " Multifile" [write::getValue GiDOptions GiDMultiFileFlag]
80- dict set project_parameters_dict " ElementType" $ElementType
81-
82- dict set project_parameters_dict " TranslationalIntegrationScheme" [write::getValue DEMTranslationalScheme]
83- dict set project_parameters_dict " RotationalIntegrationScheme" [write::getValue DEMRotationalScheme]
84- set time_params [DEM::write::GetTimeSettings]
85- set MaxTimeStep [dict get $time_params DeltaTime]
86- # TODO: MAXTIMESTEP is get from General and it should be getting its value from DEM block
87- dict set project_parameters_dict " MaxTimeStep" $MaxTimeStep
88- set FinalTime [dict get $time_params EndTime]
89- dict set project_parameters_dict " FinalTime" $FinalTime
90- # TODO: check for inconsistencies in DEMTIMEPARAMETERS UN
91- # dict set project_parameters_dict "ControlTime" [write::getValue DEMTimeParameters ScreenInfoOutput]
92- dict set project_parameters_dict " NeighbourSearchFrequency" [write::getValue DEMTimeParameters NeighbourSearchFrequency]
93- dict set project_parameters_dict " GraphExportFreq" [write::getValue DGraphs GraphExportFreq]
94- dict set project_parameters_dict " VelTrapGraphExportFreq" 1e-3
95-
9634 set material_test_parameters_dict [dict create]
9735 set material_analysis [write::getValue DEMTestMaterial Active]
9836 if {$material_analysis == " true" } {
99-
100- dict set material_test_parameters_dict " TestType" [write::getValue DEMTestMaterial TestType]
101- dict set material_test_parameters_dict " ConfinementPressure" [write::getValue DEMTestMaterial ConfinementPressure]
102- dict set material_test_parameters_dict " LoadingVelocity" [write::getValue DEMTestMaterial LoadVelocity]
103- dict set material_test_parameters_dict " MeshType" [write::getValue DEMTestMaterial Meshtype]
104- dict set material_test_parameters_dict " SpecimenLength" [write::getValue DEMTestMaterial Specimenlength]
105- dict set material_test_parameters_dict " SpecimenDiameter" [write::getValue DEMTestMaterial Specimendiameter]
106- set SpecimenDiameter [write::getValue DEMTestMaterial Specimendiameter]
107- set MeasuringSurface [expr ($SpecimenDiameter *$SpecimenDiameter *3.141592/4.0)]
108- dict set material_test_parameters_dict " MeasuringSurface" $MeasuringSurface
109-
110- dict set project_parameters_dict " material_test_settings" $material_test_parameters_dict
37+ dict set material_test_parameters_dict " TestType" [write::getValue DEMTestMaterial TestType]
38+ dict set material_test_parameters_dict " ConfinementPressure" [write::getValue DEMTestMaterial ConfinementPressure]
39+ dict set material_test_parameters_dict " LoadingVelocity" [write::getValue DEMTestMaterial LoadVelocity]
40+ dict set material_test_parameters_dict " MeshType" [write::getValue DEMTestMaterial Meshtype]
41+ dict set material_test_parameters_dict " SpecimenLength" [write::getValue DEMTestMaterial Specimenlength]
42+ dict set material_test_parameters_dict " SpecimenDiameter" [write::getValue DEMTestMaterial Specimendiameter]
43+ set SpecimenDiameter [write::getValue DEMTestMaterial Specimendiameter]
44+ set MeasuringSurface [expr ($SpecimenDiameter *$SpecimenDiameter *3.141592/4.0)]
45+ dict set material_test_parameters_dict " MeasuringSurface" $MeasuringSurface
46+ dict set project_parameters_dict " material_test_settings" $material_test_parameters_dict
11147 }
11248
113- # Output timestep
114- set output_criterion [write::getValue DEMResults DEM-OTimeStepType]
115- if {$output_criterion eq " Detail_priority" } {
116- set output_timestep [write::getValue DEMResults DEM-OTimeStepDetail]
117- } elseif {$output_criterion eq " Storage_priority" } {
118- set amount [write::getValue DEMResults DEM-OTimeStepStorage]
119- set OTimeStepStorage [expr (double($FinalTime )/$amount )]
120- set maxamount [expr ($FinalTime /$MaxTimeStep )]
121- if {$amount < $maxamount } {
122- set output_timestep $OTimeStepStorage
123- } else {
124- set output_timestep $MaxTimeStep
125- }
126- }
127- dict set project_parameters_dict " OutputTimeStep" $output_timestep
128- dict set project_parameters_dict " PostBoundingBox" [write::getValue Boundingbox PostBB]
129- dict set project_parameters_dict " PostLocalContactForce" [write::getValue BondElem LocalContactForce]
130- dict set project_parameters_dict " PostDisplacement" [write::getValue PostPrint Displacement]
131- dict set project_parameters_dict " PostRadius" [write::getValue PostPrint Radius]
132- dict set project_parameters_dict " PostVelocity" [write::getValue PostPrint PostVel]
133- dict set project_parameters_dict " PostAngularVelocity" [write::getValue PostPrint AngularVelocity]
134- dict set project_parameters_dict " PostElasticForces" [write::getValue PostPrint ElasForces]
135- dict set project_parameters_dict " PostContactForces" [write::getValue PostPrint ContactForces]
136- dict set project_parameters_dict " PostRigidElementForces" [write::getValue PostPrint RigidElementForces]
137- dict set project_parameters_dict " PostStressStrainOption" [write::getValue PostPrint Stresses]
138- dict set project_parameters_dict " PostTangentialElasticForces" [write::getValue PostPrint TangElasForces]
139- dict set project_parameters_dict " PostTotalForces" [write::getValue PostPrint TotalForces]
140- dict set project_parameters_dict " PostPressure" [write::getValue PostPrint Pressure]
141- dict set project_parameters_dict " PostShearStress" [write::getValue PostPrint ShearStress]
142- dict set project_parameters_dict " PostNonDimensionalVolumeWear" [write::getValue PostPrint Wear]
143- dict set project_parameters_dict " PostParticleMoment" [write::getValue PostPrint ParticleMoment]
144- dict set project_parameters_dict " PostEulerAngles" [write::getValue PostPrint EulerAngles]
145- dict set project_parameters_dict " PostRollingResistanceMoment" [write::getValue PostPrint RollingResistanceMoment]
146- # dict set project_parameters_dict "PostNodalArea" [write::getValue PostPrint NodalArea]
147- # dict set project_parameters_dict "PostRHS" [write::getValue PostPrint Rhs]
148- # dict set project_parameters_dict "PostDampForces" [write::getValue PostPrint DampForces]
149- # dict set project_parameters_dict "PostAppliedForces" [write::getValue PostPrint AppliedForces]
150- # dict set project_parameters_dict "PostGroupId" [write::getValue PostPrint GroupId]
151- # dict set project_parameters_dict "PostExportId" [write::getValue PostPrint ExportId]
152- dict set project_parameters_dict " problem_name" [Kratos::GetModelName]
49+ dict set project_parameters_dict " PostContactFailureId" [write::getValue BondElem TypeOfFailure]
15350
15451 return $project_parameters_dict
15552}
15653
15754proc CDEM::write::GetTimeSettings { } {
158- set result [dict create]
159- dict set result DeltaTime [write::getValue DEMTimeParameters DeltaTime]
160- dict set result EndTime [write::getValue DEMTimeParameters EndTime]
161- return $result
55+ return [DEM::write::GetTimeSettings]
16256}
16357
16458proc CDEM::write::GetGravity { } {
165- set gravity_value [write::getValue DEMGravity GravityValue]
166- set gravity_X [write::getValue DEMGravity Cx]
167- set gravity_Y [write::getValue DEMGravity Cy]
168- set gravity_Z [write::getValue DEMGravity Cz]
169- # Normalize director vector
170- lassign [MathUtils::VectorNormalized [list $gravity_X $gravity_Y $gravity_Z ]] gravity_X gravity_Y gravity_Z
171- # Get value by components
172- lassign [MathUtils::ScalarByVectorProd $gravity_value [list $gravity_X $gravity_Y $gravity_Z ] ] gx gy gz
173-
174- return [list $gx $gy $gz ]
59+ return [DEM::write::GetGravity]
17560}
17661
17762proc CDEM::write::writeParametersEvent { } {
178- # write::SetParallelismConfiguration; # Node is being deleted at init
179- write::WriteJSON [getParametersDict]
63+ write::SetParallelismConfiguration
64+ write::WriteJSON [CDEM::write:: getParametersDict]
18065}
0 commit comments