FEM object types

About the development of the FEM module/workbench.
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

FEM object types

Postby bernd » Thu Mar 02, 2017 8:09 am

I'm looking for a name for the types for some objects:

In FEM we have the following object types:
- analysis container object
- constraints objects
- materials objects
- meshes objects
- results objects
- solver objects

and three more objects:
- shellthickness
- beamsection
- fluidsection (soon)
- How would you guys call the object type for them?

One proposal by KgoaOT was:
Perhaps a mesh section type?? Its long but atleast it describes the object


My one would be just geom objects. Since we defining something for the missing geometrical dimensions. The command names would be:

- FEM_GeomShellThickness
- FEM_GeomBeamSection
- FEM_GeomFluidSection

How about others ?

These names will be in https://github.com/FreeCAD/FreeCAD/blob ... h.cpp#L140 and tool links on FEM wiki documentation: FEM_Module

bernd
ulrich1a
Posts: 1374
Joined: Sun Jul 07, 2013 12:08 pm

Re: FEM object types

Postby ulrich1a » Thu Mar 02, 2017 11:42 am

bernd wrote:My one would be just geom objects. Since we defining something for the missing geometrical dimensions. The command names would be:

- FEM_GeomShellThickness
- FEM_GeomBeamSection
- FEM_GeomFluidSection
The term "section" comes from the calculix input file definition. This term has in geometry a different meaning and could be therefore misleading.
I would think about for example:
- FEM_ShellDefinition
- FEM_BeamDefinition
- FEM_FluidDefinition

We need also to think about the different types of 2D-elements. I would like to see the support of:
- shells
- plane stress elements
- axisymmetric elements (which where already useful for me. They need a "Solid Section" in calculix.)
There are also three different types of 1D-elements:
- beam
- truss
- 1D-flow

Those elements have a similar mesh representation but are different regarding application of forces. There may be a need for an object:
- FEM_ElementType
This would than hold the type of element (solid, fluid, shell, plane stress, axisymmetric, beam, truss, 1D-flow) and the elements belonging to it.

Ulrich
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Thu Mar 02, 2017 12:16 pm

ulrich1a wrote:
bernd wrote:My one would be just geom objects. Since we defining something for the missing geometrical dimensions. The command names would be:

- FEM_GeomShellThickness
- FEM_GeomBeamSection
- FEM_GeomFluidSection
The term "section" comes from the calculix input file definition. This term has in geometry a different meaning and could be therefore misleading.
I would think about for example:
- FEM_ShellDefinition
- FEM_BeamDefinition
- FEM_FluidDefinition

and how would you call the FEM object type these commands belong too? Geom or GeomDefinition or ElemDefinition what ever ?

- FEM_DefinitionShell
- FEM_DefinitionBeam
- FEM_DefinitionFluid

- FEM_GeomDefinitionShell
- FEM_GeomDefinitionBeam
- FEM_GeomDefinitionFluid

- FEM_ElemDefinitionShell
- FEM_ElemDefinitionBeam
- FEM_ElemDefinitionFluid
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Fri Mar 03, 2017 10:57 am

ulrich1a wrote:Those elements have a similar mesh representation but are different regarding application of forces. There may be a need for an object:
- FEM_ElementType
This would than hold the type of element (solid, fluid, shell, plane stress, axisymmetric, beam, truss, 1D-flow) and the elements belonging to it.
For sure there is need for such an object, but it should be an sub object of the once we discussing here. Means the geometry of a line element is defined in an object and the element type is defined in another subobject. The later highly depends on the solver which is used thus I would suggest to use a separate object for this definition
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Fri Mar 03, 2017 11:06 am

How about the following object names for 1D or 2D geometry definition …

FemGeometryMechanical1D → for mechanical line geometry (beamsection at the moment)
FemGeometryMechanical2D → for mechanical face geometry (shellthickness at the moment)
FemGeometryFluid1D → for fluid line geometry (fluidsection at the moment)

These are just the programm code names, not the names shown on the GUI.

BTW: Is there a 2D fluid in CalculiX?
User avatar
kkremitzki
Posts: 318
Joined: Thu Mar 03, 2016 9:52 pm
Location: Texas

Re: FEM object types

Postby kkremitzki » Fri Mar 03, 2017 12:40 pm

bernd wrote:How about the following object names for 1D or 2D geometry definition …

FemGeometryMechanical1D → for mechanical line geometry (beamsection at the moment)
FemGeometryMechanical2D → for mechanical face geometry (shellthickness at the moment)
FemGeometryFluid1D → for fluid line geometry (fluidsection at the moment)

These are just the programm code names, not the names shown on the GUI.

BTW: Is there a 2D fluid in CalculiX?

Those names sound good. All I could find re: 2D fluid is here:
Although the problem is essentially 2-dimensional it was modeled as a 3-dimensional problem with unit thickness since 2-dimensional fluid capabilities are not available in CalculiX.
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Fri Mar 03, 2017 3:45 pm

another idea, my favorite one at the moment ...

FemElementGeometry1D → for mechanical line geometry (beamsection at the moment)
FemElementGeometry2D → for mechanical face geometry (shellthickness at the moment)
FemElementFluid1D → for fluid line geometry (fluidsection at the moment)

These are just the program code names, not the names shown on the GUI.
ulrich1a
Posts: 1374
Joined: Sun Jul 07, 2013 12:08 pm

Re: FEM object types

Postby ulrich1a » Fri Mar 03, 2017 5:07 pm

bernd wrote:another idea, my favorite one at the moment ...

FemElementGeometry1D → for mechanical line geometry (beamsection at the moment)
FemElementGeometry2D → for mechanical face geometry (shellthickness at the moment)
FemElementFluid1D → for fluid line geometry (fluidsection at the moment)

These are just the program code names, not the names shown on the GUI.
I am at the move to extend the function:

Code: Select all

void FemMesh::writeABAQUS(const std::string &Filename) const
The goal is to allow volume elements and shell and beam elements in one analysis. In order to support later also axisymetric 2D-elements the c++-code must have access to the above discussed objects. I am not that familiar with the c++-Python interaction. How does the access of the python-objects inside c++ work?

Ulrich
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Fri Mar 03, 2017 5:30 pm

ulrich1a wrote:I am at the move to extend the function:

Code: Select all

void FemMesh::writeABAQUS(const std::string &Filename) const
I have been playing with writeABAQUS too but I'm not able to do all my wishes in C++. What I have been thinking is may be extending importInp.py module to export inp meshes. In python I'm able to write an exporter which would fit all needs, different element types, all element types (for example S8R etc), groups of meshes and so on. All the great things FreeCAD FEM mesh objects does support.

Bernd
User avatar
bernd
Posts: 3868
Joined: Sun Sep 08, 2013 8:07 pm
Location: Zürich, Switzerland

Re: FEM object types

Postby bernd » Fri Mar 03, 2017 5:31 pm

ulrich1a wrote:I am at the move to extend the function:

Code: Select all

void FemMesh::writeABAQUS(const std::string &Filename) const
The goal is to allow volume elements and shell and beam elements in one analysis. In order to support later also axisymetric 2D-elements the c++-code must have access to the above discussed objects. I am not that familiar with the c++-Python interaction. How does the access of the python-objects inside c++ work?
Why do you really need access to the python-objects to write out the mesh data ?