Center of Gravity

Hi all,

is there a way to show the centre of gravity of the self-weight of a group in Wingraf/Grai?

I’m doing an analysis of a geometrically very complicated structure and I need to understand where is the centre of gravity of the self-weight (and potentially of other dead load) with respect to some refernce system.

Please note that it’s not a seismic analysis, loads are all static.



The centre of gravity is not calculated automatically.
If you only need the center of mass, you can do an eigenvalue analysis. The result is the center of gravity due to the selfweight.

If you are only interested in the center of ‘mass’ for a given ‘storey’ then you can use the storey level functionality in DYNA. Please see the example in TEDDY and see the description in SOFIMSHC and DYNA manuals.

TEDDY > File > Examples > dyna > english > storeys > storeys.dat

Best regards
Frederik Höller
Your SOFiSTiK Support Team

I Frederik,

first of all, thanks for the quick response.
I’m actually interested to understand where the centre of gravity (or mass) is for the self-weight (input as a load case with factor 1.0) of a structure. The structure is a plated steel bridge with several stiffeners, diaphragms, openings etc.
As the bridge has varying sections (both in width and height) and is heavily asymmetrical, is essentially impossible to calculate the centre of gravity by hand.

One way around it would be to do some trial and error and model a single constraint to be moved around until the bridge is balanced, given the complexity of the model, this would take too much time and computational resources (each analysis would take approx 10 minutes to run).

In the export dialog from SofiPlus there is the option to calculate centre of mass and centre of rigidity, but I don’t know how to output the position.

Also, I assume that centre of mass and centre of rigidity would be calculated for the entire structure, while I would need it calculated for specified groups.


Possible solution:
Add a single fixed support, deactivate all others.
Check the LC with dead load:

  • FZ → Total weight
  • My → Fz*lever
  • Mx → Fz*lever

Now you can calculate the cog in the xy-plane (the lever arms from you support point)

In case you need the z-coordinate as well: same principle but change the directional factors for the dead load LC ... FACD ... DLX... DLY... DLZ

Hi sfr.

I apprechiate the advise. What you are suggesting is the “brute force” option and is something that I was thinking on doing myself (see the trial and error I mentioned in my previous post).
Again because of the time it take to run the analysis, I’d like to avoid this.

Off course it’s a possible solution if I have no other option.


Other than the methods shown, there is no way I can think of to calculate the center of gravity.

The centre of mass and centre of rigidity, calculated from SOFiPLUS(-X), is shown in the report browser file grafik . But keep in mind that this is feature comes from the new program FEABENCH. This means, that FEABENCH caluclates the COR or COM for a defined storey level. If you have no storey levels in your project the program does not calculate the centre of mass or rigidity.

grafik grafik

Further information can be found within the FEABENCH manual:

SSD / TEDDY > Help > User Manuals > All Manuals… > FEABENCH > chapter 2.4.2 Centre of Rigidity (COR) and Storey Stiffness
SSD / TEDDY > Help > User Manuals > All Manuals… > FEABENCH > chapter 4.1.1 COR Calculate Centre Of Rigidity

But why don’t you try my described workflow with a short eigenvalue calculation?
With this workflow you get the centre of mass quite easily. You can even activate or deactivate specific element groups, because the center of mass is also calculated for instable systems. You just have to look into the report browser.

I made a quick example to show you the workflow.
Centre of Gravity.sofistik (44.4 KB)
Centre of Gravity.dwg (59.2 KB)

Thanks Frederik,

the eigenvalue method is actually very interesting (I’d like to experiment with Sofistik with dynamic analysis a little more) however at the moment I’m under pressure to close one project and I don’t have time to try new features.

Eventually I used the brute force method and worked out my centre of mass indirectly.

I’ll try the eigenvalue method when I have some free time.


Did you see the file I sent you?
You just need to insert a Text Task with the following two commands:

+prog ase
head Calculation of the centre of mass

eige 1

grp - off
grp 20,30 full   !Group selection

Thats it.