unv2oofem:unv2oofem
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
unv2oofem:unv2oofem [2011/01/08 22:49] – smilauer | unv2oofem:unv2oofem [2021/12/14 09:10] – [Extension for hanging nodes] smilauer | ||
---|---|---|---|
Line 6: | Line 6: | ||
===== How to obtain the unv2oofem ===== | ===== How to obtain the unv2oofem ===== | ||
- | The unv2oofem is a part of the [[http:// | + | The unv2oofem is a part of the [[http:// |
- | * [[http:// | + | * unv2oofem.py - python script reading unv input files and creating OOFEM input file |
- | * [[http:// | + | * oofemctrlreader.py - general manipulation classes related to OOFEM data format. |
- | * [[http:// | + | * unv2x.py - the base class written by [[http:// |
+ | * FEM.py - classes defining basic entities in FEM | ||
+ | * abaqus2x.py - Python module used to parse an Abaqus .inp file | ||
===== How to use the unv2oofem ===== | ===== How to use the unv2oofem ===== | ||
Line 23: | Line 25: | ||
|Quad: 4 nodes, linear | 44| Planestress2D, | |Quad: 4 nodes, linear | 44| Planestress2D, | ||
|Quad: 8 nodes, quadratic | 45| QPlanestress2D, | |Quad: 8 nodes, quadratic | 45| QPlanestress2D, | ||
- | |Tetrahedron: | + | |Tetrahedron: |
- | |Brick: 8 node, linear|115| LSpace, LSpaceBB, Brick1HT, | + | |Brick: 8 node, linear|115| LSpace, LSpaceBB, Brick1HT, |
- | |Brick: 20 nodes, quadratic|116| QSpace | | + | |Brick: 20 nodes, quadratic|116| QSpace, QBrick1ht, QBrick1hmt |
|Tetrahedron: | |Tetrahedron: | ||
Line 40: | Line 42: | ||
- Click // | - Click // | ||
- Define groups for supports and loads in the same way, by selecting appropriate edges and nodes. Create two groups // | - Define groups for supports and loads in the same way, by selecting appropriate edges and nodes. Create two groups // | ||
- | - The unv file is exported using // | + | - The unv file is exported using // |
==== Creating control file ==== | ==== Creating control file ==== | ||
- | We need to define information about materials, tractions and boundary conditions. {{: | + | We need to define information about materials, tractions and boundary conditions. {{: |
<code text> | <code text> | ||
- | unv2oofem_example.out | + | exam.out |
This example shows how to convert unv file to OOFEM input file. | This example shows how to convert unv file to OOFEM input file. | ||
linearstatic nsteps 1 nmodules 1 | linearstatic nsteps 1 nmodules 1 | ||
Line 65: | Line 67: | ||
#NODE tStep 1 number 5 dof 1 unknown d | #NODE tStep 1 number 5 dof 1 unknown d | ||
# | # | ||
- | + | ||
group load_edge | group load_edge | ||
- | elemprop | + | elemprop |
- | etype[11] | + | etype[11] |
- | + | ||
group support_nodes | group support_nodes | ||
nodeprop bc 2 1 1 | nodeprop bc 2 1 1 | ||
- | + | ||
group material_1 | group material_1 | ||
elemprop mat 1 crosssect 1 | elemprop mat 1 crosssect 1 | ||
etype[44] PlaneStress2d | etype[44] PlaneStress2d | ||
- | + | ||
group material_2 | group material_2 | ||
elemprop mat 2 crosssect 1 | elemprop mat 2 crosssect 1 | ||
Line 82: | Line 84: | ||
</ | </ | ||
| | ||
+ | |||
+ | |||
+ | ==== Extension for sets ==== | ||
+ | Boundary conditions and material assignments can be handled via sets. Salome needs to define groups on which those sets will operate. | ||
+ | {{: | ||
+ | <code text> | ||
+ | exam-sets.out | ||
+ | This example shows how to convert unv file to OOFEM input file. It will use sets. | ||
+ | linearstatic nsteps 1 nmodules 1 | ||
+ | vtkxml tstep_all domain_all primvars 1 1 vars 2 4 1 stype 1 | ||
+ | domain 2dplanestress | ||
+ | OutputManager tstep_all dofman_all element_all | ||
+ | ncrosssect 2 nmat 2 nbc 2 nic 0 nltf 1 nset 4 | ||
+ | SimpleCS 1 thick 1.0 width 1.0 material 1 set 1 | ||
+ | SimpleCS 2 thick 1.0 width 1.0 material 2 set 2 | ||
+ | isole 1 d 0.0 e 15.0 n 0.25 tAlpha 0.0 | ||
+ | isole 2 d 0.0 e 20.0 n 0.25 tAlpha 0.0 | ||
+ | BoundaryCondition 1 loadTimeFunction 1 dofs 2 1 2 values 2 0.0 0.0 set 3 | ||
+ | ConstantEdgeLoad 2 loadTimeFunction 1 dofs 2 1 2 components 2 10.0 0.0 loadType 3 set 4 | ||
+ | ConstantFunction 1 f(t) 1.0 | ||
+ | set 1 elements | ||
+ | set 2 elements | ||
+ | set 3 nodes | ||
+ | set 4 elementedges | ||
+ | #Comment may be inserted anywhere | ||
+ | #Data for extractor, if necessary | ||
+ | # | ||
+ | ## check reactions | ||
+ | #REACTION tStep 1 number 1 dof 1 | ||
+ | #NODE tStep 1 number 5 dof 1 unknown d | ||
+ | # | ||
+ | |||
+ | group load_edge | ||
+ | elemprop set 4 | ||
+ | etype[11] | ||
+ | |||
+ | group support_nodes | ||
+ | nodeprop set 3 | ||
+ | |||
+ | group material_1 | ||
+ | elemprop set 1 | ||
+ | etype[44] PlaneStress2d | ||
+ | |||
+ | group material_2 | ||
+ | elemprop set 2 | ||
+ | etype[44] PlaneStress2d | ||
+ | </ | ||
+ | |||
+ | ==== Extension for hanging nodes ==== | ||
+ | Hanging nodes are nodes located on finite elements. They do not add degrees of freedom but use element interpolation functions instead. For example, reinforcement can be attached to concrete elements using hanging nodes. Any group of nodes in Salome represent hanging nodes when its name starts with " | ||
+ | One way in Salome is creating two independent meshes for concrete and reinforcement. A compound mesh can join both meshes - just be careful not to tick "Merge coincident nodes and elements" | ||
+ | |||
+ | '' | ||
+ | nodeprop dofType 3 2 2 2'' | ||
+ | |||
+ | |||
==== Run the unv2oofem ==== | ==== Run the unv2oofem ==== | ||
- | The unv2oofem convertor creates the OOFEM input file unv2oofem_example.in executing a python command: | + | The unv2oofem convertor creates the OOFEM input file exam.in executing a python command: |
- | $ unv2oofem.py | + | $ unv2oofem.py |
- | All the files can be {{: | + | All the files can be {{: |
unv2oofem/unv2oofem.txt · Last modified: 2021/12/14 09:10 by smilauer