diff --git a/README.md b/README.md index d48dae7d6..1bf71f23e 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ If you need the developer version, you are on the right place. * You don't need to install python. The program will detect if you have any pending package to install. * If there's any missing package, use the GiD command line and execute: - `-np- W [GiD_Python_PipInstall [list $Kratos::pip_packages_required ] 1 ]` + `-np- W [GiD_Python_PipInstall [list $::Kratos::pip_packages_required ] 1 ]` * 4.1- To execute Kratos using the standard pip packages: * Python version recommended: 3.8, 3.9, 3.10, 3.11, 3.12 * Open a terminal and run diff --git a/kratos.gid/apps/DEM/xml/XmlController.tcl b/kratos.gid/apps/DEM/xml/XmlController.tcl index d100ed808..84ae6d259 100644 --- a/kratos.gid/apps/DEM/xml/XmlController.tcl +++ b/kratos.gid/apps/DEM/xml/XmlController.tcl @@ -29,7 +29,7 @@ proc ::DEM::xml::CustomTree { args } { spdAux::SetValueOnTreeItem state hidden DEMTimeParameters StartTime # 3D gravity - if {$Model::SpatialDimension eq "3D"} { + if {$::Model::SpatialDimension eq "3D"} { catch { spdAux::SetValueOnTreeItem v 0.0 DEMGravity Cy spdAux::SetValueOnTreeItem v -1.0 DEMGravity Cz diff --git a/kratos.gid/apps/Dam/write/write.tcl b/kratos.gid/apps/Dam/write/write.tcl index 0d09cd135..90401fd6a 100644 --- a/kratos.gid/apps/Dam/write/write.tcl +++ b/kratos.gid/apps/Dam/write/write.tcl @@ -265,7 +265,7 @@ proc ::Dam::write::writeTables_dev { } { proc ::Dam::write::GetPrinTables {} { set root [customlib::GetBaseRoot] - if {$Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file join [GiD_Info project ModelName] ".gid"]} + if {$::Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file join [GiD_Info project ModelName] ".gid"]} set tableid_list [list ] set files_list [list ] set num 0 @@ -301,7 +301,7 @@ proc ::Dam::write::GetPrinTables {} { proc ::Dam::write::GetPrinTables_dev { } { set root [customlib::GetBaseRoot] - if {$Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file join [GiD_Info project ModelName] ".gid"]} + if {$::Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file join [GiD_Info project ModelName] ".gid"]} set tableid_list2 [list ] set files_list2 [list ] set num [llength [GetPrinTables]] diff --git a/kratos.gid/apps/EmbeddedFluid/write/write.tcl b/kratos.gid/apps/EmbeddedFluid/write/write.tcl index dd68b761b..23c28260d 100644 --- a/kratos.gid/apps/EmbeddedFluid/write/write.tcl +++ b/kratos.gid/apps/EmbeddedFluid/write/write.tcl @@ -31,14 +31,14 @@ proc EmbeddedFluid::write::writeDistances { } { set length [objarray length $nodes_list] if {$length eq "0"} {W "Warning: No distances detected! Check Preferences > Meshing > General > Mesh type > Embedded"} write::WriteString "Begin NodalData DISTANCE" - incr write::current_mdpa_indent_level + incr ::write::current_mdpa_indent_level set s [write::mdpaIndent] for {set i 0} {$i < $length} {incr i } { set node_id [objarray get $nodes_list $i] set distance [objarray get $distances_list $i] write::WriteString "$s$node_id 0 $distance" } - incr write::current_mdpa_indent_level -1 + incr ::write::current_mdpa_indent_level -1 write::WriteString "End NodalData" } } diff --git a/kratos.gid/apps/GeoMechanics/xml/XmlController.tcl b/kratos.gid/apps/GeoMechanics/xml/XmlController.tcl index 1bc893cdf..afc9db09a 100644 --- a/kratos.gid/apps/GeoMechanics/xml/XmlController.tcl +++ b/kratos.gid/apps/GeoMechanics/xml/XmlController.tcl @@ -129,7 +129,7 @@ proc ::GeoMechanics::xml::ProcCheckNodalConditionStateGeoMechanics {domNode args set condition [Model::getNodalConditionbyId $conditionId] set cnd_dim [$condition getAttribute WorkingSpaceDimension] if {$cnd_dim ne ""} { - if {$cnd_dim ne $Model::SpatialDimension} {return "hidden"} + if {$cnd_dim ne $::Model::SpatialDimension} {return "hidden"} } set elems [$domNode selectNodes "[spdAux::getRoute $parts_un]/condition/group/value\[@n='Element'\]"] set elemnames [list ] diff --git a/kratos.gid/apps/PfemFluid/start.tcl b/kratos.gid/apps/PfemFluid/start.tcl index 36cbf91f1..52c6f61b3 100644 --- a/kratos.gid/apps/PfemFluid/start.tcl +++ b/kratos.gid/apps/PfemFluid/start.tcl @@ -24,7 +24,7 @@ proc ::PfemFluid::Init { app } { proc ::PfemFluid::CustomToolbarItems { } { variable dir # Reset the left toolbar - set Kratos::kratos_private(MenuItems) [dict create] + set ::Kratos::kratos_private(MenuItems) [dict create] set img_dir [file join $dir images] if {[gid_themes::GetCurrentTheme] eq "GiD_black"} { set img_dir [file join $img_dir Black] diff --git a/kratos.gid/apps/PfemFluid/xml/XmlController.tcl b/kratos.gid/apps/PfemFluid/xml/XmlController.tcl index 0b29db239..79bba8e5e 100644 --- a/kratos.gid/apps/PfemFluid/xml/XmlController.tcl +++ b/kratos.gid/apps/PfemFluid/xml/XmlController.tcl @@ -116,7 +116,7 @@ proc PfemFluid::xml::CustomTree { args } { # spdAux::SetValueOnTreeItem icon select Restart RestartOptions # 3D gravity - if {$Model::SpatialDimension eq "3D"} { + if {$::Model::SpatialDimension eq "3D"} { catch { spdAux::SetValueOnTreeItem v -9.81 PFEMFLUID_Gravity Cy spdAux::SetValueOnTreeItem v 0.0 PFEMFLUID_Gravity Cz diff --git a/kratos.gid/apps/PfemThermic/start.tcl b/kratos.gid/apps/PfemThermic/start.tcl index c5a1c14d6..c38b2301d 100644 --- a/kratos.gid/apps/PfemThermic/start.tcl +++ b/kratos.gid/apps/PfemThermic/start.tcl @@ -25,7 +25,7 @@ proc ::PfemThermic::Init { app } { proc ::PfemThermic::CustomToolbarItems { } { variable dir # Reset the left toolbar - set Kratos::kratos_private(MenuItems) [dict create] + set ::Kratos::kratos_private(MenuItems) [dict create] set img_dir [file join $dir images] if {[gid_themes::GetCurrentTheme] eq "GiD_black"} { set img_dir [file join $img_dir Black] @@ -36,7 +36,7 @@ proc ::PfemThermic::CustomToolbarItems { } { Kratos::ToolbarAddItem "Stop" [file join $img_dir "cancelProcess.png"] {Utilities CancelProcess} [= "Cancel process"] Kratos::ToolbarAddItem "Examples" "losta.png" [list -np- ::Examples::StartWindow [apps::getActiveAppId]] [= "Examples window"] Kratos::ToolbarAddItem "SpacerApp1" "" "" "" - if {[info exists Kratos::kratos_private(UseFiles)] && $Kratos::kratos_private(UseFiles) == 1} { + if {[info exists ::Kratos::kratos_private(UseFiles)] && $::Kratos::kratos_private(UseFiles) == 1} { Kratos::ToolbarAddItem "Files" "files.png" [list -np- spdAux::LaunchFileWindow] [= "File handler window"] } } diff --git a/kratos.gid/apps/PfemThermic/write/write.tcl b/kratos.gid/apps/PfemThermic/write/write.tcl index 0e7c37603..dbde54652 100644 --- a/kratos.gid/apps/PfemThermic/write/write.tcl +++ b/kratos.gid/apps/PfemThermic/write/write.tcl @@ -130,7 +130,7 @@ proc PfemThermic::write::getPropertiesList {parts_un {write_claw_name "True"} {m set mat_dict [write::getMatDict] set props_dict [dict create] set props [list] - set doc $gid_groups_conds::doc + set doc $::gid_groups_conds::doc set root [$doc documentElement] set xp1 "[spdAux::getRoute $parts_un]/group" diff --git a/kratos.gid/apps/PfemThermic/xml/XmlController.tcl b/kratos.gid/apps/PfemThermic/xml/XmlController.tcl index 3f564cd61..3946849d2 100644 --- a/kratos.gid/apps/PfemThermic/xml/XmlController.tcl +++ b/kratos.gid/apps/PfemThermic/xml/XmlController.tcl @@ -48,7 +48,7 @@ proc PfemThermic::xml::CustomTree { args } { set inlet_result_node [[$root parent] selectNodes "[spdAux::getRoute NodalResults]/value\[@n = 'INLET'\]"] if { $inlet_result_node ne "" } { $inlet_result_node delete } - if {$Model::SpatialDimension eq "3D"} { + if {$::Model::SpatialDimension eq "3D"} { catch { spdAux::SetValueOnTreeItem v -9.81 PFEMFLUID_Gravity Cy spdAux::SetValueOnTreeItem v 0.0 PFEMFLUID_Gravity Cz } } diff --git a/kratos.gid/apps/Structural/xml/XmlController.tcl b/kratos.gid/apps/Structural/xml/XmlController.tcl index f50e92bd9..3640415d9 100644 --- a/kratos.gid/apps/Structural/xml/XmlController.tcl +++ b/kratos.gid/apps/Structural/xml/XmlController.tcl @@ -91,7 +91,7 @@ proc ::Structural::xml::ProcCheckNodalConditionStateStructural {domNode args} { set condition [Model::getNodalConditionbyId $conditionId] set cnd_dim [$condition getAttribute WorkingSpaceDimension] if {$cnd_dim ne ""} { - if {$cnd_dim ne $Model::SpatialDimension} {return "hidden"} + if {$cnd_dim ne $::Model::SpatialDimension} {return "hidden"} } set parts_xpath [spdAux::getRoute $parts_un $domNode] set elems [$domNode selectNodes "$parts_xpath/condition/group/value\[@n='Element'\]"] diff --git a/kratos.gid/kratos.tcl b/kratos.gid/kratos.tcl index f6aec49e6..d4380f353 100644 --- a/kratos.gid/kratos.tcl +++ b/kratos.gid/kratos.tcl @@ -145,14 +145,14 @@ proc Kratos::InitGlobalVariables {dir} { # Version of the kratos executable set kratos_private(exec_version) "dev" # Allow logs -> 0 No | 1 Only local | 2 Share with dev team - set Kratos::kratos_private(allow_logs) 1 + set ::Kratos::kratos_private(allow_logs) 1 # git hash of the problemtype - set Kratos::kratos_private(problemtype_git_hash) 0 + set ::Kratos::kratos_private(problemtype_git_hash) 0 # Place were the logs will be placed - set Kratos::kratos_private(model_log_folder) "" + set ::Kratos::kratos_private(model_log_folder) "" # Check exec/launch.json - set Kratos::kratos_private(configurations) [list ] - set Kratos::kratos_private(launch_configuration) "" + set ::Kratos::kratos_private(configurations) [list ] + set ::Kratos::kratos_private(launch_configuration) "" # Variable to store the Kratos menu items set kratos_private(MenuItems) [dict create] @@ -228,7 +228,7 @@ proc Kratos::LoadModelSPD { filespd } { update # Dont open the init window. Saved models have already app and dimension - set spdAux::must_open_init_window 0 + set ::spdAux::must_open_init_window 0 # Need this check for old gid compatibility. Sometimes this event was called by mistake. Kratos::CheckProjectIsNew $filespd @@ -483,8 +483,8 @@ proc Kratos::Event_InitGIDPostProcess {} { proc Kratos::BeforeInitGIDPostProcess {} { # In docker run, rename lst file - if {[info exists Kratos::kratos_private(launch_configuration)]} { - set launch_mode $Kratos::kratos_private(launch_configuration) + if {[info exists ::Kratos::kratos_private(launch_configuration)]} { + set launch_mode $::Kratos::kratos_private(launch_configuration) if {$launch_mode eq "Docker"} { set list_file [file join [GidUtils::GetDirectoryModel] model.post.lst] if {[file exists $list_file]} { @@ -528,8 +528,8 @@ proc Kratos::Event_BeforeRunCalculation { batfilename basename dir problemtypedi proc Kratos::Event_SelectGIDBatFile { dir basename } { set result "" - if {[info exists Kratos::kratos_private(launch_configuration)]} { - set launch_mode $Kratos::kratos_private(launch_configuration) + if {[info exists ::Kratos::kratos_private(launch_configuration)]} { + set launch_mode $::Kratos::kratos_private(launch_configuration) ::GidUtils::SetWarnLine "Launch mode: $launch_mode" catch {set result [Kratos::ExecuteLaunchByMode $launch_mode]} error_msg } @@ -538,7 +538,7 @@ proc Kratos::Event_SelectGIDBatFile { dir basename } { proc Kratos::Event_AfterWriteCalculationFile { filename errorflag } { # Only write if required - if {$Kratos::must_write_calc_data} { + if {$::Kratos::must_write_calc_data} { set errcode [Kratos::WriteCalculationFilesEvent $filename] if {$errcode} {return "-cancel-"} } @@ -558,7 +558,7 @@ proc Kratos::WriteCalculationFilesEvent { {filename ""} } { } } # The calculation process may need the files of the file selector entries inside the model folder - if {$Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file dirname $filename]} + if {$::Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file dirname $filename]} # Start the write configuration clean write::Init @@ -597,13 +597,13 @@ proc Kratos::Event_SaveModelSPD { filespd } { Kratos::RegisterEnvironment # User files (in file selectors) copied into the model (if required) - if {$Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file dirname $filespd]} + if {$::Kratos::kratos_private(UseFiles) eq 1} {FileSelector::CopyFilesIntoModel [file dirname $filespd]} # Let the current app implement it's Save event apps::ExecuteOnCurrentApp AfterSaveModel $filespd # Log it - set Kratos::kratos_private(model_log_folder) [file join [GiD_Info Project ModelName].gid Logs] + set ::Kratos::kratos_private(model_log_folder) [file join [GiD_Info Project ModelName].gid Logs] Kratos::Log "Save model [file tail $filespd ]" } diff --git a/kratos.gid/scripts/Applications.tcl b/kratos.gid/scripts/Applications.tcl index b60c23d06..60628b026 100644 --- a/kratos.gid/scripts/Applications.tcl +++ b/kratos.gid/scripts/Applications.tcl @@ -388,16 +388,16 @@ proc apps::ActivateApp_do {app} { # If theme is dark, set the Black images dir before the normal one, so images for dark theme are loaded first if {[gid_themes::GetCurrentTheme] eq "GiD_black"} { - set gid_groups_conds::imagesdirList [lsearch -all -inline -not -exact $gid_groups_conds::imagesdirList [list [file join $dir images]]] + set ::gid_groups_conds::imagesdirList [lsearch -all -inline -not -exact $::gid_groups_conds::imagesdirList [list [file join $dir images]]] gid_groups_conds::add_images_dir [file join $dir images Black] } gid_groups_conds::add_images_dir [file join $dir images] } proc apps::ApplyAppPreferences {app} { - if {[write::isBooleanTrue [$app getPermission stages]]} {set spdAux::UseStages 1} {set spdAux::UseStages 0} - if {[write::isBooleanTrue [$app getPermission open_tree]]} {set spdAux::TreeVisibility 1} {set spdAux::TreeVisibility 0} - if {[write::isBooleanTrue [$app getPermission show_toolbar]]} {set spdAux::ToolbarVisibility 1} {set spdAux::ToolbarVisibility 0} + if {[write::isBooleanTrue [$app getPermission stages]]} {set ::spdAux::UseStages 1} {set ::spdAux::UseStages 0} + if {[write::isBooleanTrue [$app getPermission open_tree]]} {set ::spdAux::TreeVisibility 1} {set ::spdAux::TreeVisibility 0} + if {[write::isBooleanTrue [$app getPermission show_toolbar]]} {set ::spdAux::ToolbarVisibility 1} {set ::spdAux::ToolbarVisibility 0} if {[$app getProperty dimensions] ne ""} { set ::Model::ValidSpatialDimensions [$app getProperty dimensions] } } diff --git a/kratos.gid/scripts/Controllers/ApplicationMarketWindow.tcl b/kratos.gid/scripts/Controllers/ApplicationMarketWindow.tcl index 504cbbd7a..dc40c739d 100644 --- a/kratos.gid/scripts/Controllers/ApplicationMarketWindow.tcl +++ b/kratos.gid/scripts/Controllers/ApplicationMarketWindow.tcl @@ -96,7 +96,7 @@ proc spdAux::CreateInitialApplicationsWindow {} { # Information panel ttk::labelframe $w.info -text " Information " -relief ridge - ttk::label $w.info.text -textvariable spdAux::info_main_window_text + ttk::label $w.info.text -textvariable ::spdAux::info_main_window_text grid $w.info.text # Settings @@ -161,9 +161,9 @@ proc spdAux::CreateLauncherWindow { current_launcher available_apps {window_text grid $w.applications # Information panel - set spdAux::info_main_window_text "" + set ::spdAux::info_main_window_text "" ttk::labelframe $w.info -text " Information " -relief ridge - ttk::label $w.info.text -textvariable spdAux::info_main_window_text + ttk::label $w.info.text -textvariable ::spdAux::info_main_window_text grid $w.info.text grid $w.info -sticky we } diff --git a/kratos.gid/scripts/Controllers/ExamplesWindow.tcl b/kratos.gid/scripts/Controllers/ExamplesWindow.tcl index 69cdb9313..6117b3707 100644 --- a/kratos.gid/scripts/Controllers/ExamplesWindow.tcl +++ b/kratos.gid/scripts/Controllers/ExamplesWindow.tcl @@ -70,7 +70,7 @@ proc Examples::StartWindow { {filter ""} } { AddToScrolledCanvas $examples_window.center $fcenter grid $examples_window.center -row 0 -column 0 -sticky nsew - set Examples::filter_entry $filter + set ::Examples::filter_entry $filter set filter_txt [ttk::label $fcenter.filter_text -text [_ "Search an example:"]] set filter_ent [ttk::entry $fcenter.filter_entry -textvariable Examples::filter_entry] set filter_btn [ttk::button $fcenter.filter_button -text "Filter" -command [list Examples::PrintGroups]] @@ -220,7 +220,7 @@ proc Examples::LaunchExample {example_app example_dim example_cmd} { Kratos::ResetModel Model::DestroyEverything set ::problemtype_current(CustomLibAutomatic) 1 - gid_common_problemtype_init_customlib_automatic $Kratos::kratos_private(Path) + gid_common_problemtype_init_customlib_automatic $::Kratos::kratos_private(Path) set ::problemtype_current(CustomLibAutomatic) 0 spdAux::SetSpatialDimmension $example_dim apps::setActiveApp $example_app diff --git a/kratos.gid/scripts/Launch.tcl b/kratos.gid/scripts/Launch.tcl index dba0e5ff1..3ee04753d 100644 --- a/kratos.gid/scripts/Launch.tcl +++ b/kratos.gid/scripts/Launch.tcl @@ -27,7 +27,7 @@ proc Kratos::InstallAllPythonDependencies { } { if {[llength $missing_packages] > 0} { exec $pip -m pip install --no-cache-dir --disable-pip-version-check {*}$missing_packages } - exec $pip -m pip install --upgrade --no-cache-dir --disable-pip-version-check {*}$Kratos::pip_packages_required + exec $pip -m pip install --upgrade --no-cache-dir --disable-pip-version-check {*}$::Kratos::pip_packages_required ::GidUtils::SetWarnLine "Packages updated" } @@ -168,14 +168,14 @@ proc Kratos::ShowErrorsAndActions {errs} { set py [Kratos::GetPythonExeName] set python_exe_path [Kratos::ManagePreferences GetValue python_path] W "Run the following command on a terminal (note: On Windows systems, use cmd, not PowerShell):" - W "$python_exe_path -m pip install --upgrade --force-reinstall --no-cache-dir $Kratos::pip_packages_required" + W "$python_exe_path -m pip install --upgrade --force-reinstall --no-cache-dir $::Kratos::pip_packages_required" } "MISSING_PIP_PACKAGES_GiDS_PYTHON" { W "Kratos package was not found on your system." set py [Kratos::GetPythonExeName] set python_exe_path [Kratos::ManagePreferences GetValue python_path] W "Run the following command on the GiD Command line:" - W "-np- W \[GiD_Python_PipInstall \[list $Kratos::pip_packages_required \] 1 \]" + W "-np- W \[GiD_Python_PipInstall \[list $::Kratos::pip_packages_required \] 1 \]" } "DOCKER_NOT_FOUND" { W "Could not start docker. Please check if the Docker service is enabled." @@ -265,7 +265,7 @@ proc Kratos::LoadConfigurationFile {config_file} { } proc Kratos::SetDefaultLaunchMode { } { - set curr_mode $Kratos::kratos_private(launch_configuration) + set curr_mode $::Kratos::kratos_private(launch_configuration) set modes [list ] set first "" foreach mode $::Kratos::kratos_private(configurations) { @@ -273,7 +273,7 @@ proc Kratos::SetDefaultLaunchMode { } { lappend modes $mode_name if {$first eq ""} {set first $mode_name} } - if {$curr_mode ni $modes} {set Kratos::kratos_private(launch_configuration) $first} + if {$curr_mode ni $modes} {set ::Kratos::kratos_private(launch_configuration) $first} } proc Kratos::ExecuteLaunchByMode {launch_mode} { @@ -313,7 +313,7 @@ proc Kratos::ExecuteLaunchByMode {launch_mode} { proc Kratos::GetLaunchMode { {launch_mode "current"} } { set curr_mode "" - if {$launch_mode eq "current"} {set launch_mode $Kratos::kratos_private(launch_configuration)} + if {$launch_mode eq "current"} {set launch_mode $::Kratos::kratos_private(launch_configuration)} foreach mode $::Kratos::kratos_private(configurations) { set mode_name [dict get $mode name] if {$mode_name eq $launch_mode} { diff --git a/kratos.gid/scripts/Logs.tcl b/kratos.gid/scripts/Logs.tcl index 78dcce0ba..cc0910503 100644 --- a/kratos.gid/scripts/Logs.tcl +++ b/kratos.gid/scripts/Logs.tcl @@ -19,7 +19,7 @@ proc Kratos::GetLogFilePath { } { proc Kratos::InitLog { } { variable kratos_private - if {[info exists Kratos::kratos_private(allow_logs)] && $Kratos::kratos_private(allow_logs)>0} { + if {[info exists ::Kratos::kratos_private(allow_logs)] && $::Kratos::kratos_private(allow_logs)>0} { set kratos_private(LogFilename) [clock format [clock seconds] -format "%Y%m%d%H%M%S"].log set logpath [Kratos::GetLogFilePath] @@ -36,7 +36,7 @@ proc Kratos::InitLog { } { proc Kratos::Log {msg} { variable kratos_private - if {[info exists kratos_private(Log)] && $Kratos::kratos_private(allow_logs) > 0} { + if {[info exists kratos_private(Log)] && $::Kratos::kratos_private(allow_logs) > 0} { if {[info exists kratos_private(Log)]} { lappend kratos_private(Log) "*~* [clock format [clock seconds] -format {%Z %Y-%m-%d %H:%M:%S }] | $msg" @@ -52,7 +52,7 @@ proc Kratos::Log {msg} { proc Kratos::FlushLog { } { variable kratos_private return "" - if {[info exists kratos_private(Log)] && $Kratos::kratos_private(allow_logs) > 0} { + if {[info exists kratos_private(Log)] && $::Kratos::kratos_private(allow_logs) > 0} { # only disturb the disk if we have something new to write if {[llength $kratos_private(Log)] > 0} { set logpath [Kratos::GetLogFilePath] @@ -75,15 +75,15 @@ return "" set kratos_private(Log) [list ] # Move it to the model, so the user can see and store to get support # Keep the original to keep centralized data to send to the servers - if {$Kratos::kratos_private(model_log_folder) ne ""} { - Kratos::MoveLogsToFolder $Kratos::kratos_private(model_log_folder) 0 + if {$::Kratos::kratos_private(model_log_folder) ne ""} { + Kratos::MoveLogsToFolder $::Kratos::kratos_private(model_log_folder) 0 } } } } proc Kratos::AutoFlush {} { - if {[info exists Kratos::kratos_private(allow_logs)] && $Kratos::kratos_private(allow_logs)>0} { + if {[info exists ::Kratos::kratos_private(allow_logs)] && $::Kratos::kratos_private(allow_logs)>0} { after 5000 {Kratos::AutoFlush} } } @@ -96,13 +96,13 @@ proc Kratos::ViewLog {} { #do not save preferences starting with flag gid.exe -c (that specify read only an alternative file) if { [GiD_Set SaveGidDefaults] } { - set Kratos::kratos_private(allow_logs) 0 + set ::Kratos::kratos_private(allow_logs) 0 } Kratos::InitLog proc Kratos::MoveLogsToFolder {folder {flush_log 1}} { - if {[info exists Kratos::kratos_private(allow_logs)] && $Kratos::kratos_private(allow_logs)>0} { + if {[info exists ::Kratos::kratos_private(allow_logs)] && $::Kratos::kratos_private(allow_logs)>0} { if {$flush_log} {FlushLog} if {![file exists $folder]} {file mkdir $folder} file copy -force [Kratos::GetLogFilePath] $folder diff --git a/kratos.gid/scripts/Mesh.tcl b/kratos.gid/scripts/Mesh.tcl index 73022bfb6..e9cf2fe20 100644 --- a/kratos.gid/scripts/Mesh.tcl +++ b/kratos.gid/scripts/Mesh.tcl @@ -27,6 +27,11 @@ proc Mesh::CheckMeshCriteria { elementsize } { set forced_mesh_order -1 foreach element_id $elements_used { set element [Model::getElement $element_id] + if { $element == "" } { + # kike: It is happening in tester case D5E101BC834E1E5F284E3FA4F027EE67 , must raise an error? by now try to continue + W "Mesh::CheckMeshCriteria element $element_id empty" + continue + } if {[$element hasAttribute "MeshOrder"]} { set element_forces [$element getAttribute "MeshOrder"] if {$element_forces eq "Quadratic"} { diff --git a/kratos.gid/scripts/Model/Element.tcl b/kratos.gid/scripts/Model/Element.tcl index a69279987..5ffbc8dc9 100644 --- a/kratos.gid/scripts/Model/Element.tcl +++ b/kratos.gid/scripts/Model/Element.tcl @@ -434,6 +434,11 @@ proc Model::CheckElementsNodalCondition {conditionId elemnames {restrictions "" foreach eid $elemnames { if {$eid ne ""} { set elem [getElement $eid] + if { $elem == "" } { + # kike: It is happening in tester case D5E101BC834E1E5F284E3FA4F027EE67 , must raise an error? by now try to continue + W "Model::CheckElementsNodalCondition elem $eid empty" + continue + } foreach elemNCNode [$elem getNodalConditions] { set elemNC [$elemNCNode getName] if {$elemNC eq $conditionId} { diff --git a/kratos.gid/scripts/Utils.tcl b/kratos.gid/scripts/Utils.tcl index 23ae7c750..374c3a9b0 100644 --- a/kratos.gid/scripts/Utils.tcl +++ b/kratos.gid/scripts/Utils.tcl @@ -112,7 +112,7 @@ proc Kratos::LoadProblemtypeLibraries {} { gid_groups_conds::begin_problemtype $spdfile [Kratos::GiveKratosDefaultsFile] "" 0 } if {[gid_themes::GetCurrentTheme] eq "GiD_black"} { - set gid_groups_conds::imagesdirList [lsearch -all -inline -not -exact $gid_groups_conds::imagesdirList [list [file join [file dirname $spdfile] images]]] + set ::gid_groups_conds::imagesdirList [lsearch -all -inline -not -exact $::gid_groups_conds::imagesdirList [list [file join [file dirname $spdfile] images]]] gid_groups_conds::add_images_dir [file join [file dirname $spdfile] images Black] gid_groups_conds::add_images_dir [file join [file dirname $spdfile] images] } @@ -220,9 +220,9 @@ proc Kratos::LogInitialData { } { set initial_data [dict create] dict set initial_data gid_version [GiD_Info gidversion] - dict set initial_data problemtype_git_hash $Kratos::kratos_private(problemtype_git_hash) - dict set initial_data problemtype_version $Kratos::kratos_private(Version) - # dict set initial_data executable_version $Kratos::kratos_private(exec_version) + dict set initial_data problemtype_git_hash $::Kratos::kratos_private(problemtype_git_hash) + dict set initial_data problemtype_version $::Kratos::kratos_private(Version) + # dict set initial_data executable_version $::Kratos::kratos_private(exec_version) dict set initial_data current_platform $::tcl_platform(platform) Kratos::Log [write::tcl2json $initial_data] diff --git a/kratos.gid/scripts/Writing/WriteMaterials.tcl b/kratos.gid/scripts/Writing/WriteMaterials.tcl index 156363d1d..2429381c2 100644 --- a/kratos.gid/scripts/Writing/WriteMaterials.tcl +++ b/kratos.gid/scripts/Writing/WriteMaterials.tcl @@ -174,7 +174,7 @@ proc write::getPropertiesListByConditionXPath {cnd_xpath {write_claw_name "True" set first [dict create "model_part_name" $model_part_name "properties_id" 0 "Material" [dict create Variables [dict create]]] lappend props $first - set doc $gid_groups_conds::doc + set doc $::gid_groups_conds::doc set root [$doc documentElement] # iterate over the groups of the conditions @@ -227,7 +227,7 @@ proc write::getPropertiesListByConditionXPath {cnd_xpath {write_claw_name "True" proc write::getPropertiesList {unique_name {write_claw_name "True"} {model_part_name ""}} { - set doc $gid_groups_conds::doc + set doc $::gid_groups_conds::doc set root [$doc documentElement] set xp1 "[spdAux::getRoute $unique_name]" diff --git a/kratos.gid/scripts/Writing/WriteProjectParameters.tcl b/kratos.gid/scripts/Writing/WriteProjectParameters.tcl index 2ed2690e5..104737bf9 100644 --- a/kratos.gid/scripts/Writing/WriteProjectParameters.tcl +++ b/kratos.gid/scripts/Writing/WriteProjectParameters.tcl @@ -56,6 +56,8 @@ proc write::tcl2json { value } { # Tcl has *no* null value at all; empty strings are semantically # different and absent variables aren't values. So cheat! return $value + } elseif {$value eq "dictnull"} { + return null } elseif {[string is integer -strict $value]} { return [expr {$value}] } elseif {[string is double -strict $value]} { @@ -107,6 +109,8 @@ proc write::tcl2jsonstrings { value } { # Tcl has *no* null value at all; empty strings are semantically # different and absent variables aren't values. So cheat! return $value + } elseif {$value eq "dictnull"} { + return null } elseif {[string is integer -strict $value]} { return [json::write string $value] } elseif {[string is double -strict $value]} { diff --git a/kratos.gid/scripts/Writing/Writing.tcl b/kratos.gid/scripts/Writing/Writing.tcl index 9f7444330..46be1432a 100644 --- a/kratos.gid/scripts/Writing/Writing.tcl +++ b/kratos.gid/scripts/Writing/Writing.tcl @@ -252,8 +252,8 @@ proc write::GetWriteGroupName { group_id } { # Interval trick # If a group is child, and has been created due to the Interval issue # it's entities are on the father, so we need to use it's fathers name - foreach parent [dict keys $spdAux::GroupsEdited] { - if {$group_id in [dict get $spdAux::GroupsEdited $parent]} { + foreach parent [dict keys $::spdAux::GroupsEdited] { + if {$group_id in [dict get $::spdAux::GroupsEdited $parent]} { set group_id $parent break } @@ -631,8 +631,8 @@ proc write::getSpacing {number} { } proc write::mdpaIndent { {b 4} } { variable current_mdpa_indent_level - if {[info exists Kratos::kratos_private(mdpa_format)]} { - if {$Kratos::kratos_private(mdpa_format) == 0} { + if {[info exists ::Kratos::kratos_private(mdpa_format)]} { + if {$::Kratos::kratos_private(mdpa_format) == 0} { return "" } } @@ -692,7 +692,7 @@ proc write::WriteAssignedValues {condNode} { proc write::writeLaunchJSONFile { } { # Check if developer if {[Kratos::IsDeveloperMode]} { - set debug_folder $Kratos::kratos_private(debug_folder) + set debug_folder $::Kratos::kratos_private(debug_folder) # Prepare JSON as dict set json [dict create version "0.2.0"]