User Tools

Site Tools


unv2oofem:unv2oofem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
unv2oofem:unv2oofem [2015/10/22 04:03] smilauerunv2oofem:unv2oofem [2021/12/14 09:10] (current) – [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://www.oofem.org/en/miscellaneous/git.html|git OOFEM distribution]], which is also [[http://oofem.org/gitweb/?p=oofem.git;a=tree|downloadable from oofem.git/tools/unv2oofem directory]]. The unv2oofem convertor consists from three files: +The unv2oofem is a part of the [[http://www.oofem.org/en/miscellaneous/git.html|git OOFEM distribution]], which is also [[http://oofem.org/gitweb/?p=oofem.git;a=tree|downloadable from oofem.git/tools/unv2oofem directory]]. The unv2oofem converter consists from five files: 
-  * [[http://www.oofem.org/svn/trunk/tools/unv2oofem/unv2oofem.py|unv2oofem.py]] - python script reading unv input files and creating OOFEM input file +  * unv2oofem.py - python script reading unv input files and creating OOFEM input file 
-  * [[http://www.oofem.org/svn/trunk/tools/unv2oofem/oofemctrlreader.py|oofemctrlreader.py]] - general manipulation classes related to OOFEM data format. +  * oofemctrlreader.py - general manipulation classes related to OOFEM data format. 
-  * [[http://www.oofem.org/svn/trunk/tools/unv2oofem/unv2x.py|unv2x.py]] - the base class written by [[http://www.caelinux.com|J.Cugnoni]]. This file creates an internal FEM object structure in memory.+  * unv2x.py - the base class written by [[http://www.caelinux.com|J.Cugnoni]]. This file creates an internal FEM object structure in memory. 
 +  * 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 24: Line 26:
 |Quad: 8 nodes, quadratic | 45| QPlanestress2D, Q4Axisymm | |Quad: 8 nodes, quadratic | 45| QPlanestress2D, Q4Axisymm |
 |Tetrahedron: 4 nodes, linear|111| LTRSpace, Tetrah1ht, PY1 3D SUPG | |Tetrahedron: 4 nodes, linear|111| LTRSpace, Tetrah1ht, PY1 3D SUPG |
-|Brick: 8 node, linear|115| LSpace, LSpaceBB, Brick1HT,  Brick1HMT  |+|Brick: 8 node, linear|115| LSpace, LSpaceBB, Brick1HT, Brick1MT,Brick1HMT  |
 |Brick: 20 nodes, quadratic|116| QSpace, QBrick1ht, QBrick1hmt | |Brick: 20 nodes, quadratic|116| QSpace, QBrick1ht, QBrick1hmt |
 |Tetrahedron: 10 nodes, quadratic|118| |Tetrahedron: 10 nodes, quadratic|118|
Line 43: Line 45:
    
 ==== Creating control file ==== ==== Creating control file ====
-We need to define information about materials, tractions and boundary conditions. {{:unv2oofem:exam.zip|The control file}} looks like +We need to define information about materials, tractions and boundary conditions. {{:unv2oofem:exam.zip|The control file exam.ctrl}} looks like 
 <code text> <code text>
 exam.out exam.out
Line 82: Line 84:
 </code> </code>
      
 +
 +
 +==== Extension for sets ====
 +Boundary conditions and material assignments can be handled via sets. Salome needs to define groups on which those sets will operate.
 +{{:unv2oofem:exam.zip|The control file exam-sets.ctrl}} looks like 
 +<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
 +#%BEGIN_CHECK% tolerance 1.e-8
 +## check reactions
 +#REACTION tStep 1 number 1 dof 1
 +#NODE tStep 1 number 5 dof 1 unknown d
 +#%END_CHECK%
 +
 +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
 +</code>
 +
 +==== 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 "OOFEM-Hanging". OOFEM will automatically find finite elements overlapping with those hanging nodes. This is facilitated through SpatialLocalizerInterface in particular implementation in OOFEM's elements.
 +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". Continue with export to unv and process with unv2oofem.py. Reinforcement is normally represented by OOFEM's truss elements. Reinforcement nodes need to be grouped in "OOFEM-Hanging*" group at the end of ctrl file, e.g.
 +<code text>
 +group OOFEM-Hanging-nodes
 +nodeprop dofType 3 2 2 2
 +</code>
 + 
 +
 ==== Run the unv2oofem ==== ==== Run the unv2oofem ====
 The unv2oofem convertor creates the OOFEM input file exam.in executing a python command: The unv2oofem convertor creates the OOFEM input file exam.in executing a python command:
Line 88: Line 147:
    
 All the files can be {{:unv2oofem:exam.zip|downloaded as a ZIP file}}. All the files can be {{:unv2oofem:exam.zip|downloaded as a ZIP file}}.
 +
unv2oofem/unv2oofem.1445479392.txt.gz · Last modified: 2015/10/22 04:03 by smilauer