Skip to content

Commit 33ef007

Browse files
authored
Merge pull request #877 from KratosMultiphysics/PfemFluid/processForWaveMonitoring
Pfem fluid/process for wave monitoring
2 parents ceb69ff + a2dd053 commit 33ef007

3 files changed

Lines changed: 84 additions & 8 deletions

File tree

kratos.gid/apps/PfemFluid/write/write.tcl

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
namespace eval ::PfemFluid::write {
22
namespace path ::PfemFluid
33
Kratos::AddNamespace [namespace current]
4-
4+
55
variable writeAttributes
66
variable remesh_domains_dict
77
variable bodies_list
@@ -20,7 +20,7 @@ proc PfemFluid::write::Init { } {
2020

2121
SetAttribute materials_un [::PfemFluid::GetUniqueName materials]
2222
SetAttribute nodal_conditions_un [::PfemFluid::GetUniqueName nodal_conditions]
23-
23+
2424
SetAttribute main_launch_file [::PfemFluid::GetAttribute main_launch_file]
2525
SetAttribute materials_file [::PfemFluid::GetWriteProperty materials_file]
2626
SetAttribute properties_location [::PfemFluid::GetWriteProperty properties_location]
@@ -59,6 +59,8 @@ proc PfemFluid::write::writeMeshes { } {
5959
}
6060
# Solo Malla , no en conditions
6161
writeNodalConditions [GetAttribute nodal_conditions_un]
62+
#writeWaveMonitorMesh
63+
6264

6365
}
6466

@@ -89,6 +91,19 @@ proc PfemFluid::write::GetPartsUN { } {
8991
return $lista
9092
}
9193

94+
95+
proc PfemFluid::write::writeWaveMonitorMesh { } {
96+
97+
set xp1 "[spdAux::getRoute "WaveMonitor"]/group"
98+
set groups_wave_height [[customlib::GetBaseRoot] selectNodes $xp1]
99+
foreach group $groups_wave_height {
100+
set groupid [$group @n]
101+
set groupid [::write::GetWriteGroupName $groupid]
102+
::write::writeGroupSubModelPart WaveMonitor $groupid "nodal"
103+
}
104+
}
105+
106+
92107
# Custom files (Copy python scripts, write materials file...)
93108
proc PfemFluid::write::writeCustomFilesEvent { } {
94109
# Write the fluid materials json file

kratos.gid/apps/PfemFluid/write/writeProjectParameters.tcl

Lines changed: 59 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ proc PfemFluid::write::getNewParametersDict { } {
2929
set processList [GetPFEM_ProcessList]
3030
dict set projectParametersDict processes $processList
3131

32-
##### Restart
33-
# set output_process_list [GetPFEM_OutputProcessList]
34-
# dict set projectParametersDict output_process_list $output_process_list
32+
##### WaveMonitor, Restart
33+
set output_processes_list [GetPFEM_OutputProcesses]
34+
dict set projectParametersDict output_processes $output_processes_list
3535

3636
##### output_configuration
3737
# dict set projectParametersDict output_configuration [write::GetDefaultOutputDict]
@@ -157,11 +157,66 @@ proc PfemFluid::write::GetPFEM_SolverSettingsDict { } {
157157
return $solverSettingsDict
158158
}
159159

160+
proc PfemFluid::write::GetPFEM_OutputProcesses { } {
161+
set resultList [dict create]
162+
163+
set output_process_list [GetPFEM_OutputProcessList]
164+
#dict lappend resultList output_list $output_process_list
165+
dict set resultList output_list $output_process_list
166+
return $resultList
167+
}
168+
169+
160170
proc PfemFluid::write::GetPFEM_OutputProcessList { } {
171+
161172
set resultList [list]
162-
# lappend resultList [write::GetRestartProcess Restart]
173+
174+
set xp1 "[spdAux::getRoute "WaveMonitor"]/group"
175+
set groups_wave_height [[customlib::GetBaseRoot] selectNodes $xp1]
176+
foreach group $groups_wave_height {
177+
set process [dict create]
178+
dict set process "python_module" "wave_height_output_process"
179+
dict set process "kratos_module" "KratosMultiphysics.PfemFluidDynamicsApplication"
180+
set parameters [GetPFEM_WaveParameters $group]
181+
dict set process Parameters $parameters
182+
183+
lappend resultList $process
184+
}
163185
return $resultList
164186
}
187+
188+
189+
proc PfemFluid::write::GetPFEM_WaveParameters { group } {
190+
191+
set parametersWave [dict create]
192+
193+
#set group_id [::write::getSubModelPartId WaveMonitor [$group @n]]
194+
#dict set parametersWave model_part_name [write::GetModelPartNameWithParent $group_id PfemFluidModelPart]
195+
dict set parametersWave model_part_name "PfemFluidModelPart"
196+
197+
set coordinates [list ]
198+
foreach node [GiD_EntitiesGroups get [$group @n] nodes ] {
199+
set coords [GiD_Mesh get node $node coordinates]
200+
lappend coordinates $coords
201+
}
202+
dict set parametersWave "coordinates" $coordinates
203+
204+
set WaveCalculationSetting [dict create]
205+
dict set WaveCalculationSetting "mean_water_level" [write::getValueByNodeChild $group MeanWaterLevel]
206+
dict set WaveCalculationSetting "relative_search_radius" [write::getValueByNodeChild $group RelativeSearchRadius]
207+
dict set parametersWave wave_calculation_settings $WaveCalculationSetting
208+
209+
set OutputFileSettings [dict create]
210+
dict set OutputFileSettings "file_name" "gauge_<i>"
211+
dict set OutputFileSettings "output_path" [write::getValueByNodeChild $group FolderName]
212+
dict set parametersWave output_file_settings $OutputFileSettings
213+
214+
dict set parametersWave "time_between_outputs" [write::getValueByNodeChild $group TimeBetweenOutputs]
215+
216+
return $parametersWave
217+
}
218+
219+
165220
proc PfemFluid::write::GetPFEM_ProblemProcessList { free_surface_heat_flux free_surface_thermal_face } {
166221
set resultList [list ]
167222
set problemtype [write::getValue PFEMFLUID_DomainType]

kratos.gid/apps/PfemFluid/xml/Results.spd

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,19 @@
99
<value n="BodyOutput" pn="Body output" v="Yes" values="Yes,No" help="The interior of the volume is printed" icon="data"/>
1010
<value n="NodeOutput" pn="Node output" v="Yes" values="Yes,No" help="The nodes are printed as a separate layer" icon="data"/>
1111
<value n="SkinOutput" pn="Skin output" v="No" values="Yes,No" help="" state="hidden" icon="data"/>
12-
<container n="OnElement" pn="On element" un="ElementResults" icon="select" help="Activate the results you want to see in the elements" open_window="0">
12+
<condition n="WaveMonitor" pn="Wave Monitor" ov="point" ovm="node" un="WaveMonitor" icon="select" help="Activate the results you want to set wave gauges" >
13+
<value n="MeanWaterLevel" pn="Mean Level" icon="data" v="0" help="Water Level"/>
14+
<value n="RelativeSearchRadius" pn="Relative Search Radius" icon="data" v="2" help="Relative value versus element size"/>
15+
<value n="TimeBetweenOutputs" pn="Output Time" icon="data" v="0.01" help="Time between two consecutive measures"/>
16+
<value n="FolderName" pn="Gauges Folder Name" icon="data" v="WaveMeasures" help="Name of the folder that will contain the results"/>
17+
</condition>
18+
<container n="OnElement" pn="Elemental Results" un="ElementResults" icon="select" help="Activate the results you want to see in the elements" open_window="0">
1319
<!--<dynamicnode command="spdAux::injectElementOutputs" args=""/>-->
1420
<!--<dynamicnode command="spdAux::injectConstitutiveLawOutputs" args=""/>-->
1521
<value n="CAUCHY_STRESS_VECTOR" pn="Cauchy stress vector" v="No" values="Yes,No"/>
1622
<value n="YIELDED" pn="Yielded" v="No" values="Yes,No"/>
1723
</container>
18-
<container n="OnNodes" pn="On nodes" un="NodalResults" icon="select" help="Activate the results you want to see in the nodes" open_window="0">
24+
<container n="OnNodes" pn="Nodal Results" un="NodalResults" icon="select" help="Activate the results you want to see in the nodes" open_window="0">
1925
<value n="PARTITION_INDEX" pn="Partition index" v="Yes" values="Yes,No" help="" state="[checkStateByUniqueName ParallelType MPI]"/>
2026
<dynamicnode command="spdAux::injectNodalConditionsOutputs" args=""/>
2127
<!--<value n="ACCELERATION" pn="Acceleration" v="No" values="Yes,No" state="[checkStateByUniqueName PFEMFLUID_DomainType Fluids]"/>-->

0 commit comments

Comments
 (0)