Skip to content

Commit d2334f2

Browse files
Write submodelparts
1 parent 188b033 commit d2334f2

6 files changed

Lines changed: 30 additions & 66 deletions

File tree

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<condition n="GenericModelParts" pn="Add SubModelPart" un="GenericSubmodelPart" ov="point,line,surface,volume" icon="generic" >
33
<value n="WriteNodes" pn="Write nodes" v="True" values="True,False" state="disabled" />
4-
<value n="WriteElements" pn="Write elements" v="False" values="True,False" state="[checkStateByUniqueName SMP_write_mode elements_and_conditions]"/>
5-
<value n="WriteConditions" pn="Write conditions" v="True" values="True,False" state="[checkStateByUniqueName SMP_write_mode elements_and_conditions]"/>
4+
<value n="WriteElements" pn="Write elements" v="False" values="True,False" state="[ShowInWriteMode Entitites]"/>
5+
<value n="WriteConditions" pn="Write conditions" v="True" values="True,False" state="[ShowInWriteMode Entitites]"/>
66
</condition>

kratos.gid/apps/Fluid/write/writeByGiDId.tcl

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -151,65 +151,6 @@ proc ::Fluid::write::writeConditionsMesh { } {
151151
}
152152
}
153153

154-
# proc ::Fluid::write::writeSkinMesh { } {
155-
# variable FluidConditions
156-
157-
# set root [customlib::GetBaseRoot]
158-
# set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition/group"
159-
# #W "Conditions $xp1 [$root selectNodes $xp1]"
160-
# set listiniend [list ]
161-
# set listgroups [list ]
162-
# foreach group [$root selectNodes $xp1] {
163-
# set groupid [$group @n]
164-
# set groupid [write::GetWriteGroupName $groupid]
165-
# set ini $FluidConditions($groupid,initial)
166-
# set end $FluidConditions($groupid,final)
167-
# lappend listiniend $ini $end
168-
# lappend listgroups $groupid
169-
# }
170-
# set skinconfgroup "SKINCONDITIONS"
171-
# if {[GiD_Groups exist $skinconfgroup]} {GiD_Groups delete $skinconfgroup}
172-
# GiD_Groups create $skinconfgroup
173-
# GiD_Groups edit state $skinconfgroup hidden
174-
# foreach group $listgroups {
175-
# GiD_EntitiesGroups assign $skinconfgroup nodes [GiD_EntitiesGroups get $group nodes]
176-
# }
177-
# ::write::writeGroupSubModelPart EXTRA $skinconfgroup "Conditions" $listiniend
178-
# }
179-
180-
# proc ::Fluid::write::CheckClosedVolume {} {
181-
# variable BCUN
182-
# set isclosed 1
183-
184-
# set root [customlib::GetBaseRoot]
185-
# set xp1 "[spdAux::getRoute [GetAttribute conditions_un]]/condition/group"
186-
187-
# set listgroups [list ]
188-
# foreach group [$root selectNodes $xp1] {
189-
# set groupid [$group @n]
190-
# set conditionName [[$group parent] @n]
191-
# set cond [::Model::getCondition $conditionName]
192-
# if {[$cond getAttribute "SkinConditions"] eq "True"} {
193-
# set surfaces [GiD_EntitiesGroups get $groupid surfaces]
194-
# foreach surf $surfaces {
195-
# set linesraw [GiD_Geometry get surface $surf]
196-
# set nlines [lindex $linesraw 2]
197-
# set linespairs [lrange $linesraw 9 [expr 8 + $nlines]]
198-
# foreach pair $linespairs {
199-
# set lid [lindex $pair 0]
200-
# incr usedsurfaceslines($lid)
201-
# }
202-
# }
203-
# }
204-
# }
205-
# foreach lid [array names usedsurfaceslines] {
206-
# if {$usedsurfaceslines($lid) ne "2"} {set isclosed 0;}
207-
# }
208-
# return $isclosed
209-
# }
210-
211-
212-
213154
proc ::Fluid::write::GetAttribute {att} {
214155
variable writeAttributes
215156
return [dict get $writeAttributes $att]
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<container n="MdpaGenerator" pn="MdpaGenerator" icon="app" prefix="MDPAGen_" tree_state="open" open_window="0">
33
<container n="WriteOptions" pn="Write options" tree_state="open" un="SMP_write_options">
4+
<value n="note" pn="Note: check kratos preferences first" state="disabled" />
45
<value n="write_mode" pn="Write mode" v="geometries" un="SMP_write_mode" values="elements_and_conditions,geometries" dict="elements_and_conditions,Elements and conditions,geometries,Geometries" help="Write mode for the submodelpart.\nElements and conditions means that the submodelpart will be written as a set of elements and conditions.\nGeometries means that the submodelpart will be written as a set of geometries.">
5-
<dependencies value='elements_and_conditions' node="../value[@n='condition_write_mode']" att1='state' v1='normal' />
6-
<dependencies value='elements_and_conditions' node="../value[@n='conditions_start_id']" att1='state' v1='normal' />
7-
<dependencies value='geometries' node="../value[@n!='write_mode']" att1='state' v1='hidden' />
6+
<dependencies value='elements_and_conditions' node="../value[@type='entitites']" att1='state' v1='normal' />
7+
<dependencies value='geometries' node="../value[@type='entitites']" att1='state' v1='hidden' />
88
</value>
9-
<value n="condition_write_mode" pn="Condition mode" v='unique' values="unique,norepeat" dict="unique,Unique ids,norepeat,overlap ids" state="hidden"
9+
<value n="condition_write_mode" pn="Condition mode" v='unique' values="unique,norepeat" dict="unique,Unique ids,norepeat,overlap ids" state="hidden" type="entitites"
1010
help="Ids policy for conditions applied over the same entity more than one time.\nUnique ids means that if we apply more than one time a condition over an entity, the id will be the same everytime.\nNo repeat means that every time we apply a condition over an entity, it will generate a different id.">
1111
<dependencies value='unique' node="../value[@n='conditions_start_id']" att1='state' v1='normal' />
1212
<dependencies value='norepeat' node="../value[@n='conditions_start_id']" att1='state' v1='normal' />
1313
</value>
14-
<value n="conditions_start_id" pn="Conditions start id" v="1" state="hidden"/>
14+
<value n="conditions_start_id" pn="Conditions start id" v="1" state="hidden" type="entitites"/>
1515
</container>
1616
<include n="GenericSubModelPart" active="1" path="apps/Common/xml/GenericSubModelPart.spd"/>
1717
</container>

kratos.gid/kratos_default.spd

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,12 @@
267267
return [spdAux::ProcShowInMode $domNode $args]
268268
]]>
269269
</proc>
270+
271+
<proc n='ShowInWriteMode' args='args'>
272+
<![CDATA[
273+
return [spdAux::ProcShowInWriteMode $domNode $args]
274+
]]>
275+
</proc>
270276
<proc n='UpdateDictAndReturnState' args='args'>
271277
<![CDATA[
272278
set dict [spdAux::ProcGetConstitutiveLaws $domNode]
@@ -324,6 +330,8 @@
324330
return [spdAux::ProcGetFilesValues $domNode]
325331
]]>
326332
</proc>
333+
334+
327335

328336
<proc n='GetMaterialsList' args='args'>
329337
<![CDATA[

kratos.gid/scripts/Controllers/CommonProcs.tcl

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -543,6 +543,20 @@ proc spdAux::ProcDirectorVectorNonZero { domNode args } {
543543
gid_groups_conds::actualize_conditions_window
544544
}
545545
}
546+
proc spdAux::ProcShowInWriteMode { domNode args } {
547+
set kw [lindex $args 0]
548+
if {$kw ni [list "Geometries" "Entitites"]} {return "hidden"}
549+
set write_geometries_enabled 0
550+
if {[info exists Kratos::kratos_private(experimental_write_geometries)] && $Kratos::kratos_private(experimental_write_geometries)>0} {set write_geometries_enabled 1}
551+
552+
if {$write_geometries_enabled} {
553+
if {$kw eq "Geometries"} {return "normal"} {return "hidden"}
554+
} else {
555+
if {$kw eq "Entitites"} {return "normal"} {return "hidden"}
556+
}
557+
}
558+
559+
546560
proc spdAux::ProcShowInMode { domNode args } {
547561
set kw [lindex $args 0]
548562
if {$kw ni [list "Release" "Developer"]} {return "hidden"}

kratos.gid/scripts/Writing/WriteSubModelPart.tcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ proc write::writeBasicSubmodelParts {cond_iter {un "GenericSubmodelPart"}} {
127127
foreach group $groups {
128128
set needElems [write::getValueByNode [$group selectNodes "./value\[@n='WriteElements'\]"]]
129129
set needConds [write::getValueByNode [$group selectNodes "./value\[@n='WriteConditions'\]"]]
130+
set needGeoms [write::getValueByNode [$group selectNodes "./value\[@n='WriteGeometries'\]"]]
130131
set what "nodal"
131132
set iters ""
132133
if {$needElems} {append what "&Elements"}

0 commit comments

Comments
 (0)