From 9ee3243372b512386655a5e87522a217ef22a962 Mon Sep 17 00:00:00 2001 From: jginternational Date: Wed, 17 Nov 2021 17:54:06 +0100 Subject: [PATCH 1/3] element type inlet --- kratos.gid/apps/FluidDEM/write/write.tcl | 8 ++++++++ kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/kratos.gid/apps/FluidDEM/write/write.tcl b/kratos.gid/apps/FluidDEM/write/write.tcl index 0e35e5d4b..86f0662c0 100644 --- a/kratos.gid/apps/FluidDEM/write/write.tcl +++ b/kratos.gid/apps/FluidDEM/write/write.tcl @@ -38,7 +38,15 @@ proc FluidDEM::write::Validate { } { proc FluidDEM::write::writeCustomFilesEvent { } { FluidDEM::write::WriteMaterialsFile write::SetConfigurationAttribute main_launch_file [GetAttribute main_launch_file] +} +# Overwritten to add CylinderContinuumParticle +proc DEM::write::GetInletElementType {} { + set elem_name SphericSwimmingParticle3D + if {$::Model::SpatialDimension eq "2D"} { + set elem_name SphericSwimmingParticle2D + } + return $elem_name } proc FluidDEM::write::WriteMaterialsFile { } { diff --git a/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl b/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl index 4ffbe9a7b..0d5a1c46d 100644 --- a/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl +++ b/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl @@ -78,7 +78,13 @@ proc write::writeBasicSubmodelPartsByUniqueId {ConditionMap iter {un "GenericSub proc write::writeGroupConditionByUniqueId {groupid kname nnodes iter ConditionMap {print_again_repeated 0}} { set obj [list ] - + WV groupid + WV kname + WV nnodes + WV iter + WV ConditionMap + WV print_again_repeated 0 + # Print header set s [mdpaIndent] WriteString "${s}Begin Conditions $kname// GUI group identifier: $groupid" From 468fcdbe33f3db5ec2fb2392d16fce735ac2220c Mon Sep 17 00:00:00 2001 From: Javi Garate Date: Thu, 25 Nov 2021 17:12:53 +0100 Subject: [PATCH 2/3] fix write --- .../scripts/Writing/WriteConditionsByUniqueId.tcl | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl b/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl index 0d5a1c46d..d698a9539 100644 --- a/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl +++ b/kratos.gid/scripts/Writing/WriteConditionsByUniqueId.tcl @@ -78,13 +78,7 @@ proc write::writeBasicSubmodelPartsByUniqueId {ConditionMap iter {un "GenericSub proc write::writeGroupConditionByUniqueId {groupid kname nnodes iter ConditionMap {print_again_repeated 0}} { set obj [list ] - WV groupid - WV kname - WV nnodes - WV iter - WV ConditionMap - WV print_again_repeated 0 - + # Print header set s [mdpaIndent] WriteString "${s}Begin Conditions $kname// GUI group identifier: $groupid" @@ -109,7 +103,7 @@ proc write::writeGroupConditionByUniqueId {groupid kname nnodes iter ConditionMa set cndid 0 set new 0 if {$nnodes != 1} { - set eid [lindex $elems $i] + set eid [objarray get $elems $i] set cndid [objarray get $ConditionMap $eid] } if {$cndid == 0} { From bb5f7a8ffb94d6ddcef8a5d5f3c0255307b3533b Mon Sep 17 00:00:00 2001 From: Javi Garate Date: Mon, 29 Nov 2021 16:10:23 +0100 Subject: [PATCH 3/3] hotfix phantom wall properties and element type --- kratos.gid/apps/DEM/write/write.tcl | 8 +++++--- kratos.gid/apps/DEM/write/writeMDPA_Walls.tcl | 7 +++---- .../apps/DEM/write/writeProjectParameters.tcl | 14 +++++++++----- .../apps/FluidDEM/write/writeProjectParameters.tcl | 11 ++++++++--- .../scripts/Writing/WriteProjectParameters.tcl | 8 ++++---- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/kratos.gid/apps/DEM/write/write.tcl b/kratos.gid/apps/DEM/write/write.tcl index 24ec7aabe..26d7b63e5 100644 --- a/kratos.gid/apps/DEM/write/write.tcl +++ b/kratos.gid/apps/DEM/write/write.tcl @@ -1,7 +1,7 @@ namespace eval ::DEM::write { namespace path ::DEM Kratos::AddNamespace [namespace current] - + variable writeAttributes variable partsProperties variable inletProperties @@ -92,7 +92,7 @@ proc ::DEM::write::writeModelPartEvent { } { proc ::DEM::write::writeCustomFilesEvent { } { write::RenameFileInModel "ProjectParameters.json" "ProjectParametersDEM.json" - DEM::write::writeMaterialsFile + DEM::write::writeMaterialsFile write::SetConfigurationAttribute main_launch_file [GetAttribute main_launch_file] } @@ -163,13 +163,15 @@ proc ::DEM::write::Validate {} { } proc ::DEM::write::FindPropertiesBySubmodelpart {props subid } { - + set result "" + if {$props eq ""} {W "Check materials in $subid"} foreach prop [dict get $props properties] { if { [dict get $prop model_part_name] eq $subid || [lindex [split [dict get $prop model_part_name] "."] end] eq $subid } { set result $prop } } + return $result } diff --git a/kratos.gid/apps/DEM/write/writeMDPA_Walls.tcl b/kratos.gid/apps/DEM/write/writeMDPA_Walls.tcl index 6ac9cde71..0acec9eb2 100644 --- a/kratos.gid/apps/DEM/write/writeMDPA_Walls.tcl +++ b/kratos.gid/apps/DEM/write/writeMDPA_Walls.tcl @@ -30,7 +30,6 @@ proc ::DEM::write::WriteMDPAWalls { } { WriteWallCustomSmp } - proc ::DEM::write::processRigidWallMaterials { } { variable wallsProperties set walls_xpath [DEM::write::GetRigidWallXPath] @@ -39,10 +38,10 @@ proc ::DEM::write::processRigidWallMaterials { } { } proc ::DEM::write::processPhantomWallMaterials { } { - variable wallsProperties + variable phantomwallsProperties set phantom_walls_xpath [DEM::write::GetPhantomWallXPath] write::processMaterials $phantom_walls_xpath/group - set phantomwallsProperties [write::processMaterials $phantom_walls_xpath] + set phantomwallsProperties [write::getPropertiesListByConditionXPath $phantom_walls_xpath 0] } proc ::DEM::write::WriteRigidWallProperties { } { @@ -535,6 +534,6 @@ proc ::DEM::write::DefineFEMExtraConditions {props} { set GraphPrintval 0 if {[write::isBooleanTrue $GraphPrint]} { set GraphPrintval 1 - } + } write::WriteString " FORCE_INTEGRATION_GROUP $GraphPrintval" } diff --git a/kratos.gid/apps/DEM/write/writeProjectParameters.tcl b/kratos.gid/apps/DEM/write/writeProjectParameters.tcl index 72faa588b..cd6563df9 100644 --- a/kratos.gid/apps/DEM/write/writeProjectParameters.tcl +++ b/kratos.gid/apps/DEM/write/writeProjectParameters.tcl @@ -5,7 +5,7 @@ proc ::DEM::write::getParametersDict { } { set project_parameters_dict [dict create] set dimension [expr 3] - if {$::Model::SpatialDimension eq "2D"} {set dimension [expr 2]} + if {$::Model::SpatialDimension eq "2D"} {set dimension [expr 2]} dict set project_parameters_dict "Dimension" [expr $dimension] dict set project_parameters_dict "PeriodicDomainOption" [write::getValue Boundingbox PeriodicDomain] @@ -54,10 +54,8 @@ proc ::DEM::write::getParametersDict { } { dict set project_parameters_dict "ContactMeshOption" [write::getValue BondElem ContactMeshOption] dict set project_parameters_dict "OutputFileType" [write::getValue GiDOptions GiDPostMode] dict set project_parameters_dict "Multifile" [write::getValue GiDOptions GiDMultiFileFlag] - - set used_elements [spdAux::GetUsedElements] - set ElementType [lindex $used_elements 0] - dict set project_parameters_dict "ElementType" $ElementType + + dict set project_parameters_dict "ElementType" [GetElementType] dict set project_parameters_dict "TranslationalIntegrationScheme" [write::getValue DEMTranslationalScheme] dict set project_parameters_dict "RotationalIntegrationScheme" [write::getValue DEMRotationalScheme] @@ -113,6 +111,12 @@ proc ::DEM::write::getParametersDict { } { return $project_parameters_dict } +proc ::DEM::write::GetElementType { } { + set used_elements [spdAux::GetUsedElements] + set element_type [lindex $used_elements 0] + return $element_type +} + proc ::DEM::write::GetDemStrategyName { } { return sphere_strategy # set ElementType [::wkcf::GetElementType] # TODO: check old ::wkcf::GetElementType functionalities if required diff --git a/kratos.gid/apps/FluidDEM/write/writeProjectParameters.tcl b/kratos.gid/apps/FluidDEM/write/writeProjectParameters.tcl index 112c288cc..b15d82fb2 100644 --- a/kratos.gid/apps/FluidDEM/write/writeProjectParameters.tcl +++ b/kratos.gid/apps/FluidDEM/write/writeProjectParameters.tcl @@ -37,17 +37,17 @@ proc ::FluidDEM::write::getParametersDict { } { # nodal results dict set project_parameters_dict dem_nodal_results [FluidDEM::write::GetDEMNodalResultsDict] dict set project_parameters_dict fluid_nodal_results [FluidDEM::write::GetFluidNodalResultsDict] - + # Hydrodynamic Properties dict set project_parameters_dict properties [FluidDEM::write::GetHydrodynamicPropertiesList] - + # output configuration #TODO to be checked/modified by GCasas dict set project_parameters_dict sdem_output_processes [write::GetDefaultOutputProcessDict [::Fluid::GetAttribute id]] FluidDEM::write::InitExternalProjectParameters dict set project_parameters_dict dem_parameters $FluidDEM::write::dem_project_parameters dict set project_parameters_dict dem_parameters "solver_settings" "strategy" "swimming_sphere_strategy" dict set project_parameters_dict fluid_parameters $FluidDEM::write::fluid_project_parameters - + # Update the fluid element set element_name {*}[FluidDEM::write::GetCurrentFluidElementName] dict set project_parameters_dict fluid_parameters solver_settings formulation element_type $element_name @@ -313,3 +313,8 @@ proc FluidDEM::write::InitExternalProjectParameters { } { apps::setActiveAppSoft FluidDEM } + +proc ::DEM::write::GetElementType { } { + return "SphericPartDEMElement3D" +} + diff --git a/kratos.gid/scripts/Writing/WriteProjectParameters.tcl b/kratos.gid/scripts/Writing/WriteProjectParameters.tcl index 12efe61dd..247746785 100644 --- a/kratos.gid/scripts/Writing/WriteProjectParameters.tcl +++ b/kratos.gid/scripts/Writing/WriteProjectParameters.tcl @@ -169,8 +169,8 @@ proc write::getSolutionStrategyParametersDict { {solStratUN ""} {schemeUN ""} {S set StratParamsUN [apps::getCurrentUniqueName StratParams] } - set solstratName [write::getValue $solStratUN] - set schemeName [write::getValue $schemeUN] + set solstratName [write::getValue $solStratUN "" force] + set schemeName [write::getValue $schemeUN "" force] set sol [::Model::GetSolutionStrategy $solstratName] set sch [$sol getScheme $schemeName] @@ -258,7 +258,7 @@ proc write::getConditionsParametersDict {un {condition_type "Condition"}} { set process [::Model::GetProcess $processName] set processDict [dict create] set processWriteCommand [$process getAttribute write_command] - + dict set processDict process_name $processName if {$processWriteCommand eq ""} { @@ -268,7 +268,7 @@ proc write::getConditionsParametersDict {un {condition_type "Condition"}} { foreach {inputName in_obj} $process_parameters { dict set processDict Parameters $inputName [write::GetInputValue $group $in_obj] } - + } else { set processDict [$processWriteCommand $group $condition $process] }