Just a simple Cube problem.

Moderator: GiD Team

Post Reply
Mek_Greek
Posts: 16
Joined: Tue Jan 30, 2024 12:21 pm
Location: TU Delft

Just a simple Cube problem.

Post by Mek_Greek »

Hi GID Community!

Thank you in advance, I am sure you have no doubts on the following question.
The geometry is attached, it is a little cube, just an example. I've obtained in output the Gid mesh file with the mesh composed by only one StdBrick element.
The problem is the cube definition. Infact I'd like to have the classic definition of the element, therefore defining the cube through the bottom and the up faces.
Why GID does the defining with the lateral faces?
My problem is not about numbering but just the definition of the cube with its faces.
I've also tried with extruding the cube from the bottom surface, but nothing changed.

My purpose is to apply this to a larger mesh where I need to obtain all the nodes of the up faces of all my stdBrick elements in order to apply a surface distributed load.

Marcello.
Attachments
Geometry sx + GID mesh file dx
Geometry sx + GID mesh file dx
Screenshot_1.jpg (254.44 KiB) Viewed 413 times
User avatar
escolano
Posts: 1922
Joined: Sun Sep 05, 1982 10:51 pm

Re: Just a simple Cube problem.

Post by escolano »

The GiD definition of finite element hexahedron linear of 8 nodes is this
https://gidsimulation.atlassian.net/wik ... e.post.msh
It is our GiD definition, other codes like Abaqus, Nastran, etc. can use other ordering of the connectivities, and each one provide a picture with its own definition. (there is not any standar definition)

The elements can be in an arbitrary 3D position and rotation, in general the edges or faces won't be parallel to global XYZ axis, and you must not expect any definition like first the faces 'top' or 'bottom'

To assign boundary conditions lika a distributed load on a surface you must simply assign this condition to the geometrical surfaces you want, and generate the mesh and it will inherit this information (you can also directly assign it on the mesh, but is unrecommended, usually there are a lot of elements and selection is more difficult and worst if you remesh will lost your data assigned to the mesh)
Mek_Greek
Posts: 16
Joined: Tue Jan 30, 2024 12:21 pm
Location: TU Delft

Re: Just a simple Cube problem.

Post by Mek_Greek »

Thanks a lot for your answer Escolano! Always very useful.

I ofc tried to apply a surface load, but in OpenSees problem type, the load are transferred to the nodes and due to the areas of my elements is not costant the pressure is not costant for each element (as I'd like to get).

How would you apply this loads? Because I'd like to obtain a tcl file to export with this conditions and only OpenSees problem type does this.

For example I tried to switch to ansys55-3d and in this case there is a surface load option but in this case I can not obtain a tcl file from the model.

How can I figure out this problem?
User avatar
escolano
Posts: 1922
Joined: Sun Sep 05, 1982 10:51 pm

Re: Just a simple Cube problem.

Post by escolano »

The opensees classic problemtype developer has decided that its condition named 'Surface_Forces' over surfaces is transferred to the nodes when meshing
other possibilities were 'over face elements' and will mark the faces of the volume elements touching the surface
or 'over body elements' and then if the surface triangles/quadrilateral are generated will inherit this condition

And the calculation file of OpenSees FEM solver is Tcl-like based, then this problemtype write the calculation file with this syntax, with the commands allowed by OpenSees off course.

Each problemtype write the calculation file with the syntax of the calculation program, ansys55-3d will write a file with Ansys version 5.5 syntax
You can create your own problemtype for your own solver with the syntax you want.
What is printed is set by the <problemtype.bas> templates (each template will generate a .dat file, that usually is renamed to have the extension expected by the calculation)
or by some Tcl procedure (invoked automatically in some event) that open a file and print inside the information of GiD he want.
Mek_Greek
Posts: 16
Joined: Tue Jan 30, 2024 12:21 pm
Location: TU Delft

Re: Just a simple Cube problem.

Post by Mek_Greek »

Thank you Escolano! You are making a old-fashioned engineer understand further information stuff.

Ofc the problem is inside the OpenSees problem type coding of the forces. I am going to do my best in order to improve this command.

Sadly for you ;), I gotta open another topic, soon or later I'll be skilled in order to not bother anymore you :0
Mek_Greek
Posts: 16
Joined: Tue Jan 30, 2024 12:21 pm
Location: TU Delft

Re: Just a simple Cube problem.

Post by Mek_Greek »

further IT stuff*
User avatar
escolano
Posts: 1922
Joined: Sun Sep 05, 1982 10:51 pm

Re: Just a simple Cube problem.

Post by escolano »

If you are used to the 'OpenSees' Tcl format you can modify your copy of the GiD problemtype, and
add a to the OpenSees.cnd file a new condition similar to Surface_Forces but named for example
Surface_Pressure, with a definition similar to this

Code: Select all

CONDITION: Surface_Pressure
CONDTYPE: over surfaces
CONDMESHTYPE: over face elements
QUESTION: Pressure#UNITS#
VALUE: 0.0 kN/m^2
END CONDITION
then when meshing will be applied to faces of volume elements (identified by 2 numbers, the volume element global id and the local face number from 1 to the number of faces of the element)

and in some place must write this information with the syntax expected by OpenSees (I don't know it)
the current Surface_Forces conditions are written by the templates
<GiD>\problemtypes\OpenSees.gid\bas\Actions\Loads.bas
<GiD>\problemtypes\OpenSees.gid\bas\Actions\PlainPatternTimeseriesPath.bas
(each .bas template will create a .dat file when writing the calculation file)

Maybe better you can contact the current GiD-Opensees problemtype developers
http://gidopensees.rclab.civil.auth.gr
and ask them to implement this missing feature
Mek_Greek
Posts: 16
Joined: Tue Jan 30, 2024 12:21 pm
Location: TU Delft

Re: Just a simple Cube problem.

Post by Mek_Greek »

Thanks again Escolano!

Seems an effective way to figure out this problem.
I have not tried but can be a proper B plan.
Eventually I found another way!
I went on the problem type folder of OpenSees in GID, then I changed the .bas file where are defined the stdBrick elements, right at this raw here:
element stdBrick *ElemsNum *ElemsConec(1) *ElemsConec(2) *ElemsConec(3) *ElemsConec(4) *ElemsConec(5) *ElemsConec(6) *ElemsConec(7) *ElemsConec(8) *tcl(FindMaterialNumber *ElemsMatProp(Material) *DomainNum) *ElemsMatProp(X-Direction) *ElemsMatProp(Y-Direction) *ElemsMatProp(Z-Direction) ; # *ElemsMatProp(Material).

I've changed the way they are defined in order to have the bottom and top faces defined by nodes in counterclockwise order (as I've started this topic).
In this way it became very easy to define the SurfaceLoad elements in OpenSees in order to apply a uniform pressure.
Post Reply