Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
508e811
Updated Lagrangian mixed UP element added
lauramoremar Dec 7, 2021
694eed8
setting constitutive laws depending on the element type
lauramoremar Dec 7, 2021
bba1da4
Model Information updated for ParticleMechanics
lauramoremar Dec 9, 2021
295b2c9
forward euler scheme option added for explicit scheme
lauramoremar Dec 9, 2021
b328383
On/Off GiD postprocess in MPM
lauramoremar Dec 9, 2021
026a52e
vtk option on/off for MPM. Not prints for body with vtk yet
lauramoremar Dec 9, 2021
a1aee3a
added Newtonian Fluid as constitutive law
lauramoremar Dec 18, 2021
be1b132
added stabilization option
lauramoremar Dec 18, 2021
f29dd3d
Stabilization= No option added
lauramoremar Dec 20, 2021
3f678ba
Solid part replaced by Material_domain in MPM module
lauramoremar Dec 21, 2021
0e7005b
pressure_dofs=true or false now depend on the element type
lauramoremar Jan 17, 2022
e063a51
adding pressure option on nodes
lauramoremar Jan 18, 2022
3c5b11f
set none stabilization option
lauramoremar Feb 25, 2022
2c2d1b9
load on mpm points added
lauramoremar Mar 3, 2022
0a29feb
merge with the master
lauramoremar Mar 3, 2022
5d59462
fixing error derived from the merge
lauramoremar Mar 8, 2022
fe5b47a
vtk postprocess fixed
lauramoremar Mar 10, 2022
cad9d5a
Merge branch 'master' into MPM_VMS
jginternational Sep 1, 2022
b42b585
Merge branch 'master' into MPM_VMS
Sep 28, 2022
0bc27ab
only write the word "stabilization" for mixed formulations
Oct 1, 2022
a05d776
changing loction of gravity
Oct 2, 2022
84e0860
updated some dependences in the tree
Oct 3, 2022
5f001d4
fixing sand_ball example with problemtype branch:MPM_VMS
Oct 3, 2022
0f0d167
some modifications
lauramoremar Oct 4, 2022
8106811
deleted explicit scheme type from the tree
lauramoremar Oct 4, 2022
e637b1b
Loads on materials points (changed position and name in the tree)
lauramoremar Oct 4, 2022
959ee03
Time_intervals disabled and line_search deleted
lauramoremar Oct 4, 2022
f6bf167
deleted rayleigh beta and rayleigh alpha options
lauramoremar Oct 4, 2022
5f36e72
update gravity
lauramoremar Oct 4, 2022
c7379b6
output in Elements turned to false
lauramoremar Oct 4, 2022
8b1cd93
customized gravity on and off
lauramoremar Oct 4, 2022
04beade
Added SolutionStrategy.spd for MPM
lauramoremar Oct 4, 2022
30dcda5
tracking of material points added in GiD tree
lauramoremar Oct 6, 2022
21c4914
tracking of a material point enable for writting
lauramoremar Oct 6, 2022
025e8f9
fixing error when tracking of a material point is disabled
lauramoremar Oct 6, 2022
1e1dff0
modified time_stepping_table
lauramoremar Oct 6, 2022
9955ee6
new spd file for future InitialConditions
lauramoremar Oct 6, 2022
515e7ef
fixed a bug about writeparameters
lauramoremar Oct 10, 2022
1fb7e18
gravity On by default
lauramoremar Nov 1, 2022
ae7685f
Merge branch 'master' into MPM_VMS
lauramoremar Nov 1, 2022
0563aa7
merge with MPM/updates
lauramoremar Nov 4, 2022
f92e5b2
initial condition added to the tree
lauramoremar Nov 4, 2022
a2098c3
merge with MPM/updates
lauramoremar Nov 4, 2022
705a1ef
fixing error with a } symbol
lauramoremar Nov 7, 2022
a23db7d
Merge branch 'master' into MPM/laura
lauramoremar Nov 17, 2022
caa7e61
merge with master
lauramoremar Nov 18, 2022
72b20e4
merge with MPM/enhancements
lauramoremar Nov 25, 2022
4792280
asgs stabilization option added
lauramoremar Nov 28, 2022
5f5fdb5
Working on add Initial Boundary conditions in the tree for material p…
lauramoremar Nov 30, 2022
ca614dc
merge with master
lauramoremar Jan 11, 2023
af74b6d
osgs option added to stabilization types
lauramoremar Jan 30, 2023
6846132
fixing a bug for tracking mp
lauramoremar Jan 31, 2023
57f67e5
improvements in the tracking of a mp in time setup
lauramoremar Feb 1, 2023
67f8b3e
merge with master
lauramoremar Mar 3, 2023
1919773
visibility of stabilization
lauramoremar Mar 9, 2023
0320f53
merge with master
lauramoremar Apr 26, 2023
151c490
fixing SurfaceCondition3D3N
lauramoremar Apr 27, 2023
e13689e
merge with master
lauramoremar Dec 15, 2023
a103cd5
deprecated parameters vtk
lauramoremar Dec 19, 2023
f991051
added tracking in time of a Grid point
lauramoremar Feb 2, 2024
529ae20
tracking of a point background grid
lauramoremar Feb 2, 2024
32d3a6d
slip on lines in 3D
Feb 5, 2024
cecf759
mpm bc commented
Feb 5, 2024
a81aa55
Slip conditions for 3d case
Feb 5, 2024
7fb2882
non-conforming loads
lauramoremar Feb 15, 2024
d5fcec5
fixed stab option if up element is activated
lauramoremar Feb 15, 2024
6aa3ecc
deleted duplicated displacements
lauramoremar Feb 15, 2024
c99798d
only load on points neumann implemented
lauramoremar Feb 15, 2024
c216c78
NonConforming DirichletBoundaryConditions added
lauramoremar Feb 15, 2024
2d6cf3f
assign_initial_condition
lauramoremar Feb 19, 2024
f50c490
Merge branch 'master' into MPM/laura
lauramoremar Feb 20, 2024
99fbb0d
file_name tracking process fixed
Feb 22, 2024
5933bef
merging
Feb 22, 2024
8b577d7
fixing process
Feb 22, 2024
9c31e35
add submodelpart
jginternational Feb 23, 2024
2c0555c
initial conditions printed as material, not grid
jginternational Feb 23, 2024
cb0b3ba
add non conforming BC
lauramoremar Feb 26, 2024
f0dde7f
grid, body or both for vtk results
Mar 7, 2024
788452f
merge
Mar 7, 2024
08ed791
units for output properties changed in the examples
Mar 7, 2024
d146cf5
Merge branch 'MPM/laura' of github.com:KratosMultiphysics/GiDInterfac…
lauramoremar Mar 8, 2024
fca426c
first approach non-conforming bc in gid interface
lauramoremar Mar 8, 2024
ebd2e6b
deleted <<<<<<
Apr 18, 2024
12083a4
fixing conflicts between branches
lauramoremar May 15, 2024
e706dac
fixinf conflicts between version
lauramoremar May 15, 2024
5ab3f22
updated name of the application
lauramoremar May 15, 2024
195cc53
updating application name
lauramoremar May 15, 2024
0a5dbd9
Merge branch 'master' into MPM/laura
lauramoremar Jun 13, 2025
b92b7e4
Merge branch 'mpm/compute-reactions-flag' into MPM/laura
lauramoremar Jun 13, 2025
1f8a7be
Merge branch 'master' into mpm/laura
jginternational Jul 24, 2025
06986cb
Merge branch 'master' into MPM/laura
lauramoremar Apr 13, 2026
22baff8
merge with master
lauramoremar Apr 20, 2026
951a8ef
EnergyOutput option added
lauramoremar May 12, 2026
e1eefd5
Merge branch 'master' into MPM/laura
lauramoremar May 13, 2026
28aecff
energy output process included
lauramoremar May 15, 2026
08abea6
merge with compute energy
lauramoremar May 19, 2026
c55d4b2
fixed gravity bug
lauramoremar May 19, 2026
2e0224f
body acceleration option added
lauramoremar May 19, 2026
3ce132d
particle_mechanics_analysis replaced by mpm_analysis
lauramoremar May 19, 2026
d849446
adding fields to postprocess from GiD Interface
lauramoremar May 19, 2026
0b762fc
fixing vtk options both/body/grid
lauramoremar May 20, 2026
50b2031
fixing error with fake acceleration in BC
lauramoremar May 20, 2026
3a84e16
write a pressure in a tracking of point by default if UP is employed
lauramoremar May 20, 2026
9f376e3
updating on-nodes fields
lauramoremar May 21, 2026
bb179ee
cleaning spaces
lauramoremar May 21, 2026
f613e03
Height-Output option added to interface
lauramoremar May 22, 2026
12b0092
order of result fields modified
lauramoremar May 25, 2026
f8cfd66
friction added to slip condition
lauramoremar May 26, 2026
5ec2245
merge with master
lauramoremar May 26, 2026
b0c466f
nonconforming load points writer fixed
lauramoremar Jun 29, 2026
e82180c
nome modified for Nonconforming slip
lauramoremar Jun 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion kratos.gid/apps/MPM/app.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,8 @@
"unique_names": {
"parts": "MPMParts",
"nodal_conditions": "MPMNodalConditions",
"conditions": "MPMLoads"
"conditions": "MPMLoads",
"initial_conditions": "MPMInitialConditions"
},
"write": {
"coordinates": "all",
Expand Down
8 changes: 4 additions & 4 deletions kratos.gid/apps/MPM/examples/CantileverBeam.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,8 @@ proc ::MPM::examples::CantileverBeam::TreeAssignation2D {args} {
# Solution strategy parameters
spdAux::SetValueOnTreeItem v "0.01" MPTimeParameters DeltaTime
spdAux::SetValueOnTreeItem v "10" MPTimeParameters EndTime
spdAux::SetValueOnTreeItem v "wtep" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.1" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "time" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.1" VtkOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "1" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "1" VtkOptions OutputDeltaTime
}
8 changes: 4 additions & 4 deletions kratos.gid/apps/MPM/examples/FallingSandBall.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -149,8 +149,8 @@ proc ::MPM::examples::FallingSandBall::TreeAssignation2D {args} {
# Solution strategy parameters
spdAux::SetValueOnTreeItem v "0.005" MPTimeParameters DeltaTime
spdAux::SetValueOnTreeItem v "2" MPTimeParameters EndTime
spdAux::SetValueOnTreeItem v "time" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.02" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "time" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.02" VtkOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "4" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "4" VtkOptions OutputDeltaTime
}
8 changes: 4 additions & 4 deletions kratos.gid/apps/MPM/examples/GranularFlow.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ proc ::MPM::examples::GranularFlow::TreeAssignation2D {args} {
# Solution strategy parameters
spdAux::SetValueOnTreeItem v "0.00005" MPTimeParameters DeltaTime
spdAux::SetValueOnTreeItem v "2" MPTimeParameters EndTime
spdAux::SetValueOnTreeItem v "time" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.01" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "time" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "0.01" VtkOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" GiDOptions OutputControlType
spdAux::SetValueOnTreeItem v "200" GiDOptions OutputDeltaTime
spdAux::SetValueOnTreeItem v "step" VtkOptions OutputControlType
spdAux::SetValueOnTreeItem v "200" VtkOptions OutputDeltaTime
}
2 changes: 1 addition & 1 deletion kratos.gid/apps/MPM/examples/examples.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ proc ::MPM::examples::ErasePreviousIntervals { } {
foreach int [$root selectNodes "$interval_base/blockdata\[@n='Interval'\]"] {
if {[$int @name] ni [list Initial Total Custom1]} {$int delete}
}
}
}
1 change: 1 addition & 0 deletions kratos.gid/apps/MPM/write/write.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ proc MPM::write::Init { } {
SetAttribute parts_un [::MPM::GetUniqueName parts]
SetAttribute nodal_conditions_un [::MPM:::GetUniqueName nodal_conditions]
SetAttribute conditions_un [::MPM::GetUniqueName conditions]
SetAttribute initial_conditions_un [::MPM::GetUniqueName initial_conditions]

SetAttribute writeCoordinatesByGroups [::MPM::GetWriteProperty coordinates]
SetAttribute main_launch_file [::MPM::GetAttribute main_launch_file]
Expand Down
160 changes: 157 additions & 3 deletions kratos.gid/apps/MPM/write/writeGrid.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ proc MPM::write::WriteGridMDPA { } {

# Write conditions
::write::writeGeometryConnectivities [::write::GetGroupsAssignedIn [GetAttribute conditions_un]]
MPM::write::ResetNonConformingPointGeometryIds
MPM::write::writePointGeometriesFromNodes [MPM::write::GetNonConformingPointLoadGeometryGroups]

# Write Submodelparts
writeSubmodelparts grid
Expand All @@ -21,19 +23,171 @@ proc MPM::write::WriteGridMDPA { } {
}

proc MPM::write::writeConditionsSubmodelparts { } {
set processed_groups [list ]

foreach gNode [MPM::write::GetNonConformingPointLoadGeometryGroups] {
set group [get_domnode_attribute $gNode n]
set group [write::GetWriteGroupName $group]
if {$group in $processed_groups} {
continue
}
lappend processed_groups $group
write::writeGroupSubModelPartAsGeometry $group 1 1 [MPM::write::GetNonConformingPointGeometryIdsForGroup $group]
}

foreach group [MPM::write::GetConditionsGroups] {
if {$group in $processed_groups} {
continue
}
lappend processed_groups $group
write::writeGroupSubModelPartAsGeometry $group
}
foreach group [MPM::write::GetNodalConditionsGroups] {
write::writeGroupSubModelPartAsGeometry $group 0

foreach gNode [::write::GetGroupsAssignedIn [GetAttribute nodal_conditions_un]] {
set group [get_domnode_attribute $gNode n]
set group [write::GetWriteGroupName $group]
if {$group in $processed_groups} {
continue
}
lappend processed_groups $group
if {[MPM::write::IsNonConformingPointLoadGroup $gNode]} {
write::writeGroupSubModelPartAsGeometry $group 1 1 [MPM::write::GetNonConformingPointGeometryIdsForGroup $group]
} else {
write::writeGroupSubModelPartAsGeometry $group 0
}
}
}

proc MPM::write::GetNodalConditionsGroups { } {
set groups [::write::GetGroupsNamesAssignedIn [GetAttribute nodal_conditions_un]]
return $groups
}

proc MPM::write::GetNonConformingPointLoadGeometryGroups { } {
set non_conforming_point_load_groups [list ]
foreach un [list [GetAttribute conditions_un] [GetAttribute nodal_conditions_un]] {
foreach gNode [::write::GetGroupsAssignedIn $un] {
if {[MPM::write::IsNonConformingPointLoadGroup $gNode]} {
lappend non_conforming_point_load_groups $gNode
}
}
}
return $non_conforming_point_load_groups
}

proc MPM::write::GetNonConformingPointLoadGeometryGroupNames { } {
set groups [list ]
foreach gNode [MPM::write::GetNonConformingPointLoadGeometryGroups] {
set group_name [get_domnode_attribute $gNode n]
set group_name [write::GetWriteGroupName $group_name]
if {$group_name ni $groups} {
lappend groups $group_name
}
}
return $groups
}

proc MPM::write::writePointGeometriesFromNodes { group_list } {
set processed_groups [list ]
foreach gNode $group_list {
set group [get_domnode_attribute $gNode n]
set group [write::GetWriteGroupName $group]
if {$group in $processed_groups} {
continue
}
lappend processed_groups $group
MPM::write::writePointGeometryFromGroupNodes $group
}
}

proc MPM::write::writePointGeometryFromGroupNodes { group } {
set geometry_ids_by_node [MPM::write::EnsureNonConformingPointGeometryIdsForGroup $group]
if {[dict size $geometry_ids_by_node] < 1} {
return
}

set nDim $::Model::SpatialDimension
if {$nDim eq "2Da"} {
set nDim "2D"
}

set s [::write::mdpaIndent]
::write::WriteString "${s}Begin Geometries Point${nDim} // GUI group identifier: $group"
incr ::write::current_mdpa_indent_level
set s1 [::write::mdpaIndent]
foreach node_id [lsort -integer [dict keys $geometry_ids_by_node]] {
set geometry_id [dict get $geometry_ids_by_node $node_id]
::write::WriteString "${s1}$geometry_id $node_id"
}
incr ::write::current_mdpa_indent_level -1
::write::WriteString "${s}End Geometries"
::write::WriteString ""
}

proc MPM::write::ResetNonConformingPointGeometryIds { } {
variable non_conforming_point_geometry_ids_by_group
variable next_non_conforming_point_geometry_id

set non_conforming_point_geometry_ids_by_group [dict create]
set next_non_conforming_point_geometry_id [expr {[GiD_Info Mesh MaxNumElements] + 1}]
}

proc MPM::write::EnsureNonConformingPointGeometryIdsForGroup { group } {
variable non_conforming_point_geometry_ids_by_group
variable next_non_conforming_point_geometry_id

if {![info exists non_conforming_point_geometry_ids_by_group] || ![info exists next_non_conforming_point_geometry_id]} {
MPM::write::ResetNonConformingPointGeometryIds
}

set group [write::GetWriteGroupName $group]
if {[dict exists $non_conforming_point_geometry_ids_by_group $group]} {
return [dict get $non_conforming_point_geometry_ids_by_group $group]
}

set geometry_ids_by_node [dict create]
foreach node_id [lsort -integer [GiD_EntitiesGroups get $group nodes]] {
dict set geometry_ids_by_node $node_id $next_non_conforming_point_geometry_id
incr next_non_conforming_point_geometry_id
}
dict set non_conforming_point_geometry_ids_by_group $group $geometry_ids_by_node
return $geometry_ids_by_node
}

proc MPM::write::GetNonConformingPointGeometryIdsForGroup { group } {
set geometry_ids_by_node [MPM::write::EnsureNonConformingPointGeometryIdsForGroup $group]
set geometry_ids [list ]
foreach node_id [lsort -integer [dict keys $geometry_ids_by_node]] {
lappend geometry_ids [dict get $geometry_ids_by_node $node_id]
}
return $geometry_ids
}

proc MPM::write::IsNonConformingPointLoadGroup { gNode } {
set cond_id [get_domnode_attribute [$gNode parent] n]
if {$cond_id in [list PointLoad2DMPM PointLoad3DMPM]} {
return 1
}

set group_name [get_domnode_attribute $gNode n]
if {[string match "Nonconforming Point Load*" $group_name] || [string match "Non-Conforming Load on points*" $group_name]} {
return 1
}

set condition [Model::getCondition $cond_id]
if {$condition eq ""} {
set condition [Model::getNodalConditionbyId $cond_id]
}
if {$condition eq "" || ![$condition hasAttribute ElementType] || ![$condition hasAttribute ProcessName]} {
return 0
}
return [expr {
"Point" in [$condition getAttribute ElementType]
&& "ApplyMPMParticleNeumannConditionProcess" in [$condition getAttribute ProcessName]
}]
}

proc MPM::write::GetConditionsGroups { } {
set groups [::write::GetGroupsNamesAssignedIn [GetAttribute conditions_un]]
return $groups
}
}
Loading