Page 1 of 1

rigid diaphragm & partitions

Posted: Fri Oct 23, 2026 5:08 pm
by sebacalderon
Hello!

I’m modeling a masonry building (ASDShellQ4 shell walls with layered fiber sections, elastic slabs) in STKO and running it in parallel with OpenSeesMP. The slabs have a rigid diaphragm (rigidDiaphragm with one master node per floor and the slab nodes as slaves), and I use constraints Transformation. When I partition the model automatically (8 partitions), the diaphragm ends up split across several partitions. The analysis runs and even “converges”, but the results are completely wrong: on a house model I tested, the base reaction was 4.4 kN and the roof displacement 0.0001 mm, against 365 kN and 1.13 mm in the serial run. I checked the generated .tcl and the constraints look consistent (each slave is constrained in every partition where it exists, and the masters are defined where used), so it seems that Transformation simply does not handle a rigid diaphragm split between processes.

I tried the alternatives: Penalty was very slow and had numerical problems (1e12 did not converge on the first gravity step; 1e10 worked but covered only 6% of the record in 7 h), and constraints Auto gave correct results but was also too slow to be useful. The only thing that worked was partitioning so that each diaphragm stays whole: with 4 partitions, one per slab, the results were identical to the serial run, and it was 2.87x faster (11 h 15 min vs 32 h 16 min).

My question is how to make this explicit and reproducible instead of depending on how the automatic partitioner happens to cut the model. Is there a way in STKO to force all the nodes of a rigid diaphragm (master and slaves) into the same partition, for example by assigning partitions manually or by group/physical property? Or is there a recommended way to keep the partitioner from splitting nodes that belong to the same MP constraint?

Re: rigid diaphragm & partitions

Posted: Sat Oct 24, 2026 10:37 pm
by GazW73
Tbh sebacalderon, I dont know STKO well enough to point you at the exact button, but I definately agree that one partition per slab is the only setup you can trust here... a run that "converges" on 4.4 kN when the serial run gives 365 is worse than one that just crashes!! Reminds me of a batch of ale I brewed once that looked perfect in the fermenter and tasted like a bin, so I ain't trusting any result until its matched against teh serial one. If theres no way to force it by group, I'd try splitting the model by floor so the partition count matches your slab count and see if that stays reproducible :)

Re: rigid diaphragm & partitions

Posted: Tue Oct 27, 2026 11:03 am
by STKO Team
If the rigid diaphragm MP constraint is not overlapping with other MP constraints, there should be no issues when used with multiple processes (at least in the latest STKO version).

On the other end, the Auto constraint handler should not be too much slower than transformation, unless you have tons of nodes in a diaphragms.

if you share your model we can have a look