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,7 @@ 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 strategy_parameters_dict " strategy" $dem_strategy
6423
6524 dict set project_parameters_dict " DeltaOption" [write::getValue AdvOptions DeltaOption]
6625 dict set project_parameters_dict " SearchTolerance" [write::getValue AdvOptions TangencyToleranceValueAbsolute]
@@ -71,111 +30,34 @@ proc CDEM::write::getParametersDict { } {
7130 dict set project_parameters_dict " ComputeStressTensorOption" [write::getValue AdvOptions ComputeStressTensorOption]
7231 dict set project_parameters_dict " MaxAmplificationRatioOfSearchRadius" 1000
7332
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-
9633 set material_test_parameters_dict [dict create]
9734 set material_analysis [write::getValue DEMTestMaterial Active]
9835 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
36+ dict set material_test_parameters_dict " TestType" [write::getValue DEMTestMaterial TestType]
37+ dict set material_test_parameters_dict " ConfinementPressure" [write::getValue DEMTestMaterial ConfinementPressure]
38+ dict set material_test_parameters_dict " LoadingVelocity" [write::getValue DEMTestMaterial LoadVelocity]
39+ dict set material_test_parameters_dict " MeshType" [write::getValue DEMTestMaterial Meshtype]
40+ dict set material_test_parameters_dict " SpecimenLength" [write::getValue DEMTestMaterial Specimenlength]
41+ dict set material_test_parameters_dict " SpecimenDiameter" [write::getValue DEMTestMaterial Specimendiameter]
42+ set SpecimenDiameter [write::getValue DEMTestMaterial Specimendiameter]
43+ set MeasuringSurface [expr ($SpecimenDiameter *$SpecimenDiameter *3.141592/4.0)]
44+ dict set material_test_parameters_dict " MeasuringSurface" $MeasuringSurface
45+ dict set project_parameters_dict " material_test_settings" $material_test_parameters_dict
11146 }
11247
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]
13048 dict set project_parameters_dict " PostContactFailureId" [write::getValue BondElem TypeOfFailure]
131- dict set project_parameters_dict " PostDisplacement" [write::getValue PostPrint Displacement]
132- dict set project_parameters_dict " PostRadius" [write::getValue PostPrint Radius]
133- dict set project_parameters_dict " PostVelocity" [write::getValue PostPrint PostVel]
134- dict set project_parameters_dict " PostAngularVelocity" [write::getValue PostPrint AngularVelocity]
135- dict set project_parameters_dict " PostElasticForces" [write::getValue PostPrint ElasForces]
136- dict set project_parameters_dict " PostContactForces" [write::getValue PostPrint ContactForces]
137- dict set project_parameters_dict " PostRigidElementForces" [write::getValue PostPrint RigidElementForces]
138- dict set project_parameters_dict " PostStressStrainOption" [write::getValue PostPrint Stresses]
139- dict set project_parameters_dict " PostTangentialElasticForces" [write::getValue PostPrint TangElasForces]
140- dict set project_parameters_dict " PostTotalForces" [write::getValue PostPrint TotalForces]
141- dict set project_parameters_dict " PostPressure" [write::getValue PostPrint Pressure]
142- dict set project_parameters_dict " PostShearStress" [write::getValue PostPrint ShearStress]
143- dict set project_parameters_dict " PostNonDimensionalVolumeWear" [write::getValue PostPrint Wear]
144- dict set project_parameters_dict " PostParticleMoment" [write::getValue PostPrint ParticleMoment]
145- dict set project_parameters_dict " PostEulerAngles" [write::getValue PostPrint EulerAngles]
146- dict set project_parameters_dict " PostRollingResistanceMoment" [write::getValue PostPrint RollingResistanceMoment]
147- # dict set project_parameters_dict "PostNodalArea" [write::getValue PostPrint NodalArea]
148- # dict set project_parameters_dict "PostRHS" [write::getValue PostPrint Rhs]
149- # dict set project_parameters_dict "PostDampForces" [write::getValue PostPrint DampForces]
150- # dict set project_parameters_dict "PostAppliedForces" [write::getValue PostPrint AppliedForces]
151- # dict set project_parameters_dict "PostGroupId" [write::getValue PostPrint GroupId]
152- # dict set project_parameters_dict "PostExportId" [write::getValue PostPrint ExportId]
153- dict set project_parameters_dict " problem_name" [Kratos::GetModelName]
15449
15550 return $project_parameters_dict
15651}
15752
15853proc CDEM::write::GetTimeSettings { } {
159- set result [dict create]
160- dict set result DeltaTime [write::getValue DEMTimeParameters DeltaTime]
161- dict set result EndTime [write::getValue DEMTimeParameters EndTime]
162- return $result
54+ return [DEM::write::GetTimeSettings]
16355}
16456
16557proc CDEM::write::GetGravity { } {
166- set gravity_value [write::getValue DEMGravity GravityValue]
167- set gravity_X [write::getValue DEMGravity Cx]
168- set gravity_Y [write::getValue DEMGravity Cy]
169- set gravity_Z [write::getValue DEMGravity Cz]
170- # Normalize director vector
171- lassign [MathUtils::VectorNormalized [list $gravity_X $gravity_Y $gravity_Z ]] gravity_X gravity_Y gravity_Z
172- # Get value by components
173- lassign [MathUtils::ScalarByVectorProd $gravity_value [list $gravity_X $gravity_Y $gravity_Z ] ] gx gy gz
174-
175- return [list $gx $gy $gz ]
58+ return [DEM::write::GetGravity]
17659}
17760
17861proc CDEM::write::writeParametersEvent { } {
179- # write::SetParallelismConfiguration; # Node is being deleted at init
180- write::WriteJSON [getParametersDict]
62+ DEM::write::writeParametersEvent
18163}
0 commit comments