Code_Aster

Salome-Meca

Daniel Weschke

January 26, 2019

1 Preliminary remarks

1.1 Installation

Salome-Meca integrates the following products:

  • SALOME

  • code_aster stable and oldstable

  • AsterStudy

  • Salome-Meca plugins: CABRI

  • code_aster translator

  • astk

1.1.1 Salome-Meca

New features in 2021:

  • A noteworthy novelty of this version is the ANSYS mesh format now available within MEDConverter, a tool for mesh conversion into the MED formatdifferent formats.

  • This version integrates AsterStudy 2021.0.0.

  • And of course, code_aster V15.4 where code_aster is now a python module.

New features in 2019:

  • New geometry module Shaper

  • The main new features of AsterStudy are

    • a new tab named Results for easy post-processing;

    • a graphical summary of an analysis showing the involved parts of the model;

    • link with Openturns to define a “parametric” study and export it to Openturns;

    • possibility to continue with a graphic stage after a text stage (adding a concept editor in text mode);

    • support of remote databases.

New features in 2018:

  • RunCase’s messages summary tab with a direct link to the data setting;

  • link with Openturns to define a “parametric” study and export it to Openturns;

  • possibility to continue with a graphic stage after a text stage (adding a concept editor in text mode);

New features in 2017:

  • This release marks the launch of the new interface for data settings and code_aster computations launching, AsterStudy. This new module replaces EFICAS advantageously for data settings, offering a strong interaction with the mesh, as well as astk for the launching and follow-up of calculations.

  • Another novelty is the introduction of a new code_aster translator plugin that provides access to the code_aster command files translation utilities from version N to N+1.

1.1.1.1 Via package manager

For Arch Linux install salome-meca-bin from package manager, e.g. paru or yaourt. If using yaourt make sure you are not installing into tmpfs.

Edit PKGBUILD and point to the newest file, otherwise we get an old version. https://www.code-aster.org/FICHIERS/ e.g. https://www.code-aster.org/FICHIERS/Salome-Meca-2017.0.2-LGPL-2.tgz and md5 hash from https://www.code-aster.org/FICHIERS/Salome-Meca-2017.0.2-LGPL-2-tgz.md5 point also inside the bulid command to the new file!

1.1.1.2 Manually

Note installation script for V2019 needs still python2. Before V2019 the whole program package needs python2.

If python2 is not default create virtual environment with python2 as default python

sudo pacman -S python-virtualenv
# or/and: sudo pacman -S python2-virtualenv
mkdir ~/.virtualenvs
cd ~/.virtualenvs
virtualenv -p /usr/bin/python2.7 salome-meca
# or: virtualenv2 salome-meca
source ~/.virtualenvs/salome-meca/bin/activate
python -m pip install numpy

Requirements

Arch Linux

python2-matplotlib

python2-dateutil

nlopt

V2019

Default editor is gedit. Either install gedit or change inside Salome-Meca File - Preferences - Editor.

Download (https://code-aster.org/ - DOWNLOAD - Salome-Meca), unpack and run installer

tar xvf salome_meca-2019.0.1-1-LGPL.tgz
./salome_meca-2019.0.1-1-LGPL.run
1.1.1.3 Start program from command line
~/salome_meca/appli_V2018/salome  #  while virtualenv is active
# or
python2 ~/salome_meca/appli_V2018/salome
1.1.1.4 Start program with desktop file

Edit ~/Desktop/salome_meca_V2018.desktop and/or ~/.local/share/applicaton/salome_meca_V2018.desktop

# change from
Exec=$HOME/salome_meca/appli_V2018/salome %f
# to
Exec=python2 $HOME/salome_meca/appli_V2018/salome %f
# or
Exec=sh -c "source $HOME/.virtualenvs/salome-meca/bin/activate; $HOME/salome_meca/appli_V2018/salome %f"
1.1.1.5 Errors

NLopt not installed

SALOME_Session_Server: error while loading shared libraries: libnlopt.so.0: cannot open shared object file: No such file or directory
Traceback (most recent call last):
  File "/home/daniel/salome_meca/V2019_univ/modules/KERNEL_V9_3_0/bin/salome/orbmodule.py", line 172, in waitNSPID
    os.kill(thePID,0)
ProcessLookupError: [Errno 3] No such process
sudo pacman -S nlopt

Fix error if necessary (use system lib instead of the included lib)

SALOME_Session_Server: /home/<user>/salome_meca/V2019_univ/prerequisites/debianForSalome/lib/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libGLU.so.1)
mv ~/salome_meca/V2019_univ/prerequisites/debianForSalome/lib/libstdc++.so.6{,-bak}
1.1.2 Code_Aster

Note: When installing Salome-Meca, then Code_Aster is included.

Download Code_Aster: https://code-aster.org/ - DOWNLOAD - Code_Aster

  • Code_Aster testing (development version), e.g. aster-full-src-14.2.0-1.noarch.tar.gz

Requirements:

  • gcc, g++, gfortran (named gcc-fortran on arch) (or other compilers),

  • cmake,

  • python (named python2 on arch),

  • python-dev (on arch python-dev is delivered with python),

  • python-numpy (named python2-numpy on arch),

  • tk,

  • bison,

  • flex,

  • liblapack-dev (named lapack on arch), libblas-dev (named blas on arch) or libopenblas-dev (named openblas on arch) (decided for openblas),

  • libboost-python-dev (+ libboost-numpy-dev on ubuntu, boost-devel on centos, boost on arch) (for MFront),

  • zlib (named zlib1g-dev on debian/ubuntu).

  • optionally: grace, gdb

Unpack the archive and run the installer.

sudo pacman -S python-virtualenv
mkdir ~/.virtualenvs
cd ~/.virtualenvs
virtualenv -p /usr/bin/python2.7 salome-meca
source ~/.virtualenvs/salome-meca/bin/activate
python -m pip install numpy
cd -
tar xvf aster-full-src-14.2.0-1.noarch.tar.gz
python aster-full-src-14.2.0/setup.py install --prefix=/home/<user>/aster
source /home/<user>/aster/etc/codeaster/profile.sh

Run a test case to test the installation. For a test a .med and a .comm file is needed. First generate an .export file with astk.

astk
  • Base path: home/<user>/test-case

  • Add .comm file

  • Add .med file (check if the LU number corresponds to the UNIT inside the .comm file)

  • Add .mess file (this file will be generated and will has useful messages)

  • Add .rmed file (check if the LU number corresponds to the UNIT inside the .comm file)

  • Save this configuration as .astk file

  • Either one

    • Run (this runs as_run)

    • File - Export as… - .export astk

or manual write an .export file, minimum parameters (see also Syntax of .export files)

P actions make_etude    # run an aster calculation
P mode interactif       # in interactive mode
P version stable        # the aster version to use
A memjevex 256.0        # memory limit for the full execution in MW (=*8 MB)
# P memory_limit 2048   # memory limit for the full execution in MB, will automatically include 'P memjob XX' in KB (=*1024) and 'A memjeveux XX' (e.g. =/8)
# P memjob 2048         # memory limit for the full execution in KB, will automatically include 'P memory_limit XX' in MB (=/1024) and 'A memjeveux XX' (e.g. =/1024/8)
A tpmax 120.0           # time limit for the full execution in s
# P tpsjob 120.0        # time limit for the full execution in min, will automatically include 'P time_limit' in s (=*60) and 'A tpmax' in s (=*60)
# P time_limit 120.0    # time limit for the full execution in s, will automatically include 'P tpsjob' in min (=/60) and 'A tpmax' in s (=*1)

and some files/folders as needed

F comm study.comm D  1
F mmed mesh.mmed D  20
F mess message.mess R  6
F erre error.erre R  9
F resu result.resu R  8
F rmed result.rmed R  80
R repe repe D  0
R repe repe R  0

Run aster

cd <test-case>
as_run <test-case>.export
1.1.2.1 Update to latest sources or developing arrangements

https://bitbucket.org/code_aster/codeaster-src - Wiki - Quickstart / Build code_aster using waf

Requirement: mercurial. Configure Mercurial

wget https://bitbucket.org/code_aster/codeaster-devtools/raw/tip/etc/hgrc_template -O ~/.hgrc
# change the field username in the [ui] section
gedit ~/.hgrc

Clone the repositories

mkdir -p $HOME/dev/codeaster && cd $HOME/dev/codeaster
hg clone https://bitbucket.org/code_aster/codeaster-devtools devtools
hg clone https://bitbucket.org/code_aster/codeaster-src src

Building code_aster using waf

cd $HOME/dev/codeaster/src
# $ASTER_ROOT may be /home/<user>/aster and $ASTER_VERSION may be 14.2
source $ASTER_ROOT/$ASTER_VERSION/share/aster/profile_mfront.sh
./waf configure --use-config-dir=$ASTER_ROOT/$ASTER_VERSION/share/aster --use-config=aster_full_config \
                --prefix=../install/std
# modules can be disables like: --disable-mfront
./waf install -p

Running testcases

source /home/<user>/aster/etc/codeaster/profile.sh
# find a testcase in /home/<user>/dev/codeaster/src/astest/
./waf test -n forma01a
# or multiple
./waf test -n sslp114a -n ssnv15a
1.1.3 openturns

Note: When installing Salome-Meca or Salome-CFD, then openturns is included.

1.1.3.1 Arch Linux
paru -S openturns

Error while compiling hmat-oss, therefore removed the optional linear solver from dependencies inside PKGBUILD file. http://openturns.github.io/openturns/latest/developer_guide/architecture.html#dependencies print out while compiling openturns

-- The following OPTIONAL packages have not been found:
 * HMAT (required version >= 1.2)
1.1.3.2 Debian
sudo apt-get install python-openturns

1.2 Run in terminal

Programs from Salome-Meca are not reachable in a commandline without knowing the path or putting the directory to the PATH environment variable. To start a salome environment go to e.g. in ~/salome_meca/appli_V2019_univ and run ./salome shell.

1.2.1 Geometry and mesh via Salome

The following script takes one argument where the geometry and or the mesh is described, e.g. geometry_mesh.py. geometry_mesh.py should save the mesh as MED file. The path for the MED file must be defined inside the Python file.

For Linux, e.g. salome.sh:

# usage: salome.sh geometry_mesh.py

# activate Python environment with Python 2 as default.
. ~/.virtualenvs/salome/bin/activate

~/salome_meca/appli_V2018.0.1_public/salome start -t $*

For Windows, e.g. salome.bat:

@ECHO OFF
rem Copy script to a directory where it can be found and run it. This script
rem needs the absolute location of the geometry_mesh.py file as argument.

set FILE=%~f1

rem first go to the directory, so the script finds the Prepare.bat file
cd D:\path\to\program\sm-2018-w64-0-3\WORK
call run_salome.bat start -t %FILE% %2
1.2.2 Study via Code_Aster

The following script takes one argument where all the parts for the study is described, e.g. export. export defines the location of all input and output files.

For Linux, e.g. as_run.sh:

# usage: as_run.sh export

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/salome_meca/V2018.0.1_public/prerequisites/Tcl-8513/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/salome_meca/V2018.0.1_public/prerequisites/Tk-8513/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/salome_meca/V2018.0.1_public/prerequisites/debianForSalome/lib
export LD_LIBRARY_PATH

~/salome_meca/V2018.0.1_public/tools/Code_aster_frontend-201801/bin/as_run $*

For Windows, e.g. as_run.bat:

@ECHO OFF
rem Copy script to a directory where it can be found and run it. This script
rem needs the location of the export file as argument.

call D:\path\to\program\sm-2018-w64-0-3\PRODUCTS\code_aster\bin\as_run.bat %~f1

1.3 Configuration & preferances

Configuration files

  • ~/salome_meca/V2018/tools/Code_aster_frontend-20180/etc/codeaster/asrun

  • ~/.astkrc/prefs

  • ~/salome_meca/V2018/tools/Code_aster_frontend-20180/etc/codeaster/profile.sh

  • ~/salome_meca/V2018/tools/Code_aster_frontend-20180/etc/codeaster/profile_local.sh

Preferences

  • Salome

    • OCC 3D Viewer

      • Background: xx View

        • Vertical gradient

        • 1st color: #55557F (default #CCDAFE)

        • 2nd color: (default #698EFE)

1.4 Salome-Meca

Note it is possible that Salome-Meca is acting strange. Switching of modules is not possible or deleting of meshes or run the case or rather the run will end with a red dot. It seems that the .hdf study file gets corrupted somehow. One need to do a new study setup, to create a new study file. Therefor it is helpful to save single steps of the setup, like geometry (as python dump or .xao file), the mesh, the comm file.

If some links can not be made, it could also help to convert the Stage into ’Text mode’ and back to ’Graphical mode’.

For node, mesh, group of node and group of mesh never use spaces dashes or other special characters for variable names. Use only [A-Z][a-z]_ and 8 characters to the maximum.

If text files are hand-written, then for the mesh file;

For the command file;

  • syntax related to the language Python, allowing to include instructions of this language

  • # for comment line

  • The orders must start in column 1, unless they belong to an indent block

  • see also Process control supervisor and language

See Great principles of operation of Code_Aster.

1.5 Open and run an existing test case

Test cases can be found:

Open and run a case file:

  • Open test case

    • AsterStudy - History View - Operations - Import a testcase - enter id of test case (e.g. forma01a)

  • Check if output is defined, e.g. RMED-file.

    • AsterStudy - Case View - Output (see also Output)

  • Save the project

    • File - Save

  • Run the case

    • AsterStudy - History View - activate the case - Run - Run

  • Open result file in ParaVis

    • AsterStudy - Case View - Data Files - context menu of result file - Open in ParaVis

1.6 AsterStudy

Never use spaces dashes or other special characters for variable names. Use only [A-Z][a-z]_ and 8 characters to the maximum.

Case - Add Stage

Stage

  • Text Mode (sometimes it is easier to change something in text mode, e.g. renaming variables)

  • Graphical Mode

Default background: Vertical gradient: #00557f (2nd row, 3rd column) - #ffffff (last)

If AsterStudy is not acting correctly, like not showing field to select. Try save the project, cloese Salome-Meca and reopen the project.

1.7 Single study using astk

Prepare mesh files and the comm file and open astk: Salome-Meca GUI - Tools - Plugins - Salome-Meca - Run astk

  • Set ’Base path’ - this is the working directory

  • open different input files (the astk D flag)

    • [name].comm - this is the command file, LU is 1

    • [name].med - this is the mesh file, first default LU is 20

  • open or create different empty files (optionally), used for output (the astk R flag)

    • ./[name].mess - this is the output message file, LU is 6

    • ./[name].rmed - this is the result file, default LU is 80

    • ./[name].dat - this is the table file

  • change unites (LU) according to the comm file

  • save the astk environment

  • click Run

1.8 Parametric study using astk

First create a mesh with groups needed for the boundary conditions and export the .med file.

Second, setup the analysis using variables to perform the parametric analysis. For example using two variables namely YM and P. Also specify the result / output of interest and save it into a text file. Then export the .comm file.

Third, create a .distr file, e.g. params.distr and define all parametric combinations. Again for example a parametric set of two variables, the first YM with two values and the second P with three values. That means in total six combinations / calculations.

VALE=(
  _F(YM=0.69E5, P=-1000),
  _F(YM=0.69E5, P=-2000),
  _F(YM=0.69E5, P=-4000),
  _F(YM=2.09E5, P=-1000),
  _F(YM=2.09E5, P=-2000),
  _F(YM=2.09E5, P=-4000),
)

Forth, open astk (needs Salome session)

  • either using the Salome-Meca GUI: Tools - Plugins - Salome-Meca - Run astk

  • or using the terminal:

    • [salome_dir]/appli_V2017.0.2/salome shell

    • astk

  • Set ’Base path’ - this is the working directory

  • open different input files (the astk D flag)

    • [name].comm - this is the command file, LU is 1

    • [name].med - this is the mesh file, first default LU is 20

    • [name].distr - this is the parametric set file, LU is 0

  • open or create different empty files, used for output (the astk R flag)

    • ./[name].rmed - this is the result file, default LU is 80

    • ./[name].mess - this is the output message file, LU is 6

    • ./[name].dat - this is the table file

    • ./repe - this is the solution folder where all combination file are written to (remove the D flag if the folder does not exist now)

  • change unites (LU) according to the comm file

  • Options - Run options: distrib =

    • distrib: Yes

    • Ok

  • save the astk environment

  • optionally check the interactive follow-up

  • click Run (on multi core processor the combinations are calculated parallel, independently, there is no specific sequence)

See also Parametric calculations - Distribution of calculations.

1.9 Post Processing after run using stage

Inside AsterStudy add another Stage after the main Stage of analysis to perform additional extractions and post processing. See different post processing commands in Post Processing and Output.

After setting up the post processing; inside the History View click on the case (e.g. Case_1) and then click on previous main solution stage(s) (e.g. Stage_1) to mark them with a blue circle OK sign symbol, so that this stage is used but not re-calculated. And finally the new stage with a green circle plus sign symbol, to calculate the post processing. Click Run.

1.10 Structure models

1.10.1 Acquire parameters for beam cross section

Note: To integrate the calculation of the cross section into the main study see the description in the section Model - Element Type.

To acquire the cross section one need to run an own study case for the cross section with the entire geometry model and mesh.

Geometry must be in XY plane, a line group of the perimeter and a node group of one node must be prepared.

Mesh the geometry of the cross section and create groups from geometry (perimeter and node).

AsterStudy - Mesh - Read a mesh (LIRE_MAILLAGE )

  • Mesh file location (UNITE)

AsterStudy - Model Definition - MACR_CARA_POUTRE

  • Mesh - link to the mesh

  • GROUP_MA_BORD - link to the perimeter group of the entire cross section. This is needed for the calculation of the mechanical characteristics.

  • Group of node (GROUP_NO) - link to the group with the node

AsterStudy - Output - IMPR_TABLE

  • TABLE - link to the table (MACR_CARA_POUTRE)

  • Filename (UNITE) - define the location and the filename of the table file, e.g. crosssection

Run case and open the table file.

1.11 Thermo mechanical analysis

First perform a thermic analysis and then a mechanical analysis. For the mechanical part see special notes to material and boundary conditions.

1.12 Include data files via comm file command DEFI_FICHIER

Open data files and write result files.

AsterStudy - Show All Commands - DEFI_FICHIER

  • UNITE - two digit id to an input/output file (FORTRAN) which is not used in the export file, e.g. 99 (6 for MESSAGE and 9 for ERROR are reserved)

  • FICHIER - path to the file, either absolute or relative if in the export file the “R repe ./path_in D 0” for input files and “R repe ./path_out R 0” for out files is defined, using REPE_IN/filename for input files and REPE_OUT/filename for output files

  • TYPE

    • ASCII - (default) e.g. a table result file

    • BINARY - e.g. for MED files

    • LIBRE - undefined, could be both; ascii or binary

  • ACTION

    • ASSOCIER (default) open file (to read or write)

  • ACCES

    • NEW - (default) an output (result) file

    • OLD - an input (data) file

    • APPEND - for ascii files to append data

Close file, e.g. to reuse the UNITE for another context

AsterStudy - Show All Commands - DEFI_FICHIER

  • UNITE - two digit id to an input/output file (FORTRAN) e.g. 80

  • ACTION

    • LIBERER - close file

2 Geometry

2.1 Geometry (GEOM module)

2.1.1 Import geometry

File - Import

  • BREP

  • STEP

    • No - Use the dimensions of the model, so keep the dimension as is. No conversion will be made. For example to keep and work with the mm dimensions.

    • Yes - Convert dimensions of the model. For example a model with mm dimensions will be scaled to m.

  • IGES

  • STL

  • XAO

Check dimensions: Measures - Dimensions - Bounding Box

For multipart geometry it is a good idea to explode the components. The imported model consists in general of different type of geometry. Therefor first explode the components then create imprints for contact boundary conditions and then explode the partition compound into solids again proper for mesh selection.

  • New Entity - Explode (into meshable objects)

    • Sub-shapes Type: Solid

  • Operations - Partition (create imprints)

    • Objects - select all exploded solid parts

  • New Entity - Explode (for mesh selection)

    • Sub-shapes Type: Solid

  • rename parts

2.1.2 Update geometry with newer version

First overwrite the original file with the new one (has to be the same path and file name). Then right click inside salome_meca Geometry module on the imported geometry, unhide it first if it is hidden, and choose ’Reload From Disk’.

Important: Check all geometry groups. Because the number of elements can change the selected elements also change.

When changing to Mesh there will be an error message, but this can be ignored. It is possible that a clearing of the mesh and a recalculation of the mesh is not enough. One workaround is to change the meshing method temporally and calculate the mesh. It is okay if it fails. Clear the mesh. Then change back to the original mesh method and calculate the new geometry with all mesh settings already defined.

2.1.3 Repair and simplify the geometry import

Repair - Shape Processing

  • Operations

    • FixShape *

    • FixFaceSize *

    • DropSmallEdges *

    • DropSmallSolids

    • SplitAngle *

    • SplitClosedFaces

    • SplitContinuity

    • BSplineRestriction

    • ToBezier

    • SameParameter *

Repair - Suppress Internal Wires

  • Remove all internal wires

New Entity - Explode

  • Sub-shapes Type: Solid

New Entity - Build - Compound

  • Select all exploded solids

2.1.4 Structure model and simplification of the model
2.1.5 Plate and Shell

New Entity - Primitives

  • Point

  • Link

  • Arc

New Entity - Build

  • Face - Objects - multi select lines and arcs

2.1.6 Axisymmetric

The cross-section of the rotational symmetric structure must be drawn in XY plane and on the positive side of the X direction. Nothing should be in the region X<0. The OX direction is the radial direction and the OY is the axis of revolution (X=0).

2.1.7 Groups useful for meshing

To define the size of elements during the meshing in all three directions for blocks, the function ’Operations - Blocks - Propagate’ can be used to create useful groups. It creates three sets of edges, each in one direction of space.

2.2 Shaper

2.2.1 Create a part

Sharper - Part - New Part

2.2.1.1 Primitives

Sharper - Primitives - Box

  • By dimensions (first symbol) - dimension at origin

    • DX - define dimension along x axis

    • DY - define dimension along y axis

    • DZ - define dimension along z axis

    • Apply (check mark)

  • By two points (second symbol) - opposite vertices of the boxes

    • Point 1 - select point in 3D OCC viewer or object browser

    • Point 2 - select point in 3D OCC viewer or object browser

2.2.1.2 Sketch

Sharper - Sketch - Sketch

  • Select a plane

  • In detail view select button: Set plane view

Sharper - Sketch - Line (poly line)

2.2.1.2.1 Constraints

To constrain to the origin, the origin has to be displayed

  • Object browser - Constructions - Origin - click on the eye symbol

  • Sketch - Coincident - click on a geometry point and another point (e.g. origin) - click on the Apply button

2.2.1.2.2 Construction lines

click on a line and select the Auxiliary check box

2.2.1.2.3 Dimensions

Sharper - Sketch - Length - click on geometry - place it somewhere - enter value or a parametric expression, e.g. a=123.4

The parameter is available in the Object browser - Part set - Part_1 (e.g.) - Parameters - a = 123.4

2.2.2 Export geometry to Geometry (GEOM) for meshing using Mesh (SMESH)

Only exported geometry can be accessed with the meshing module.

Sharper - Features - Export to GEOM

3 Mesh

Note: During modeling especially doing translations, one can get element at the same location. This can result during meshing to multiple mesh nodes, element at the same location, which is not helpful. See merge Nodes.

Notes to thermo mechanical analysis. The mesh to be used in mechanics could or should be different from that used for thermics. For two main reasons:

  • A linear mesh is better in thermics, while rather quadratic in mechanics

  • Areas of interest are different => the refined areas are different

If mesh is different, one must project the temperature field on the mesh used for mechanics.

AsterStudy - Pre Analysis - PROJ_CHAMP

  • Result (RESULTAT) - link to the thermal analysis

  • MODELE_1 - link to the thermal model

  • MODELE_2 - link to the mechanical model

3.1 Create mesh

Create a 3D mesh.

Mesh - Create Mesh

  • Geometry - click on the model for meshing under the Geometry section

  • Algorithm - choose for example NETGEN 1D-2D-3D

  • Hypothesis - click on the gear symbol and choose for example NETGEN 3D Parameters

    • OK

  • Apply and Close

Select the mesh in the tree (Mesh_1)

  • Mesh - Compute - Close

Note for rotational bodys partiation of the half body and a group of the (half) cut surface is helpful for quadrilateral mapping, hexahedral meshing.

  • Mesh

    • Geometry: Body

    • Mesh type: Hexahedral

    • 3D: Extrusion 3D (works translational and rotational)

    • 2D: not set

    • 1D: Wire Discretisation

  • Sub Mesh

    • Geometry: Cut surface

    • Mesh type: Quadrilateral

    • 2D: Quadrangle: Mapping, Quadrangle Parameters Standard

    • (1D: Wire Discretisation)

  • Optional Sub Mesh

    • Geometry: Region where hexahedral only meshing is not possible

    • Mesh type: Any

    • 2D: NETGEN 2D: NETGEN 2D Parameters: Allow Quadrangles

3.1.1 Hexahedral mesh
  • Mesh or Sub Mesh

    • Mesh type: Any

    • 3D: Extrusion 3D

    • 2D: Quadrangle: Mapping (for four sided faces)

    • 1D: Wire Discretisation

      • Max Size

      • Propagation of Node Distribution on Opposite Edges

3.1.1.1 Quad dominant mesh in Salome
  • Mesh or Sub Mesh

    • Mesh type: Any

    • 3D

      • Algorithm: Gmsh

      • Hypothesis: Gmsh Parameters

        • Arguments

          • 2D algorithm: Delaunay for quads

          • 3D Algorithm: Frontal Hex

          • Max. Size

        • Compounds - to skip or select some faces, explode faces from parts and then Add these faces here.

3.1.2 Offset / extrude mesh in normal direction of surface elements

Especially for quadrangles.

# -*- coding: utf-8 -*-
import salome, smesh
import geompy as g
import math
import numpy as N

([Mesh], status) = smesh.CreateMeshesFromMED(r'/path/to/mesh/file/Mesh_1.med')

##Merge nodes if needed at sphere extra edges
coincident_nodes = Mesh.FindCoincidentNodes(1e-5)
Mesh.MergeNodes(coincident_nodes)

# Create a group with all the faces
faces = Mesh.GetElementsByType(smesh.FACE)
gr_shell = Mesh.MakeGroupByIds("shell", smesh.FACE, faces)

# Compute the normal to each face of Mesh
# @return d_normals: dict of face id with numpy vector normal to the face
def computeFacesNormal(Mesh, gr=None):
  d_normals = {}
  if gr:
    faces = gr.GetIDs()
  else:
    faces = Mesh.GetElementsByType(smesh.FACE)
  for face in faces:
    nodes = Mesh.GetElemNodes(face)
    p0 = Mesh.GetNodeXYZ(nodes[0])
    p1 = Mesh.GetNodeXYZ(nodes[1])
    p2 = Mesh.GetNodeXYZ(nodes[-1])
    vec1 = N.array(p1) - N.array(p0)
    #print "vec1: ", vec1
    vec2 = N.array(p2) - N.array(p0)
    #print "vec2: ", vec2
    vec_normal = N.cross(vec1, vec2)
    norm = N.linalg.norm(vec_normal)
    #print "normal: ", normal
    d_normals[face] = vec_normal/norm
  return d_normals

k_vec = 0
## To debug numpy vec, create a geom vec
# p0: list of coords (x, y, z)
# vec: numpy array (dx, dy, dz)
def createGeomVec(p0, vec):
  global k_vec
  k_vec +=1
  P0 = g.MakeVertex(*p0)
  p1 = N.array(p0) + vec
  P1 = g.MakeVertex(*p1.tolist())
  vec = g.MakeVector(P0, P1)
  g.addToStudy(vec, "vec_%i"%k_vec)

## Translate the nodes of the groupe gr (or all the mesh), given the normals and a distance
def translateNodes(Mesh, d_normals, dist, gr=None):
  d_translated_nodes = {}
  if gr:
    nodes = gr.GetNodeIDs()
  else:
    nodes = Mesh.GetNodesId()
  for node in nodes:
    p0 = Mesh.GetNodeXYZ(node)
    elems = Mesh.GetNodeInverseElements(node)
    l_vec = []
    for elem in elems:
      if Mesh.GetElementType(elem, 1) == smesh.FACE:
        vec = d_normals[elem]
        l_vec.append(vec)
    if not l_vec:
      raise Exception("No face found for node %i"%node)
    mean_vec = sum(l_vec)/len(l_vec)
    #createGeomVec(p0, mean_vec)
    norm = N.linalg.norm(mean_vec)
    p1 = N.array(p0)+dist/norm*mean_vec
    new_node = Mesh.AddNode(*p1.tolist())
    d_translated_nodes[node] = new_node
  return d_translated_nodes

k=0
## Add new elements given the translated nodes
# Create a group with the opposite faces, and with the layer of volume elements
def addNewElements(Mesh, d_translated_nodes, gr=None):
  global k
  k+=1
  if gr:
    faces = gr.GetIDs()
  else:
    faces = Mesh.GetElementsByType(smesh.FACE)
  new_faces = []
  new_volumic_elems = []
  for face in faces:
    nodes = Mesh.GetElemNodes(face)
    opposite_face_nodes = []
    for node in nodes:
      opposite_node = d_translated_nodes[node]
      opposite_face_nodes.append(opposite_node)
    volumic_elem_nodes = nodes + opposite_face_nodes
    opposite_face = Mesh.AddFace(opposite_face_nodes)
    new_faces.append(opposite_face)
    volumic_elem = Mesh.AddVolume(volumic_elem_nodes)
    new_volumic_elems.append(volumic_elem)
    d_normals[opposite_face] = d_normals[face]
  gr_face = Mesh.MakeGroupByIds("Opposite_face_%i"%k, smesh.FACE, new_faces)
  gr_volume = Mesh.MakeGroupByIds("Layer_%i"%k, smesh.VOLUME, new_volumic_elems)
  return gr_face, gr_volume

# Compute the normals
d_normals = computeFacesNormal(Mesh)

# Generate first layer on whole mesh
# Beware of your faces orientation!
d_translated_nodes = translateNodes(Mesh, d_normals, -0.0015)
gr_face, gr_volume = addNewElements(Mesh, d_translated_nodes)

# Second layer after the last generated faces
d_translated_nodes = translateNodes(Mesh, d_normals,-0.0015, gr_face)
gr_face, gr_volume = addNewElements(Mesh, d_translated_nodes, gr_face)

# Third layer after the last generated faces
#d_translated_nodes = translateNodes(Mesh, d_normals, 0.3, gr_face)
#gr_face, gr_volume = addNewElements(Mesh, d_translated_nodes, gr_face)

salome.sg.updateObjBrowser(0)

3.2 Create multi-part mesh with coincident nodes

In case of a step import, first explode solid components of multipart model and build a compound of all exploded parts and re-explode solids for mesh selection. To get coincident nodes use partition (select all exploded parts) instead of the compound. Again explode solids for mesh selection.

Mesh - Create Mesh

  • select multi-part model from the Geometry section of the tree

  • Apply and Close - without applying any hypotheses or apply a general hypotheses like for example NETGEN 1D-2D-3D

Mesh - Create Sub-mesh

  • Mesh - link to the main mesh

  • Geometry - select exploded parts from the Geometry section of the tree

  • Algorithm - for example NETGEN 1D-2D-3D

  • Hypthesis - click on the gear symbol and choose for example NETGEN 3D Paramters

    • OK

  • Apply and Close

Select the sub-mesh in the tree (Sub-mesh_1)

  • Mesh - Compute - Close

3.3 Create multi-part mesh without coincident nodes

In case of a step import, first explode solid components of multipart model and create imprint (partition) of all exploded parts and re-explode solids for mesh selection.

Mesh - Create Mesh

  • select an exploded part model from the Geometry section of the tree

  • Algorithm - for example NETGEN 1D-2D-3D

  • Hypthesis - click on the gear symbol and choose for example NETGEN 3D Paramters

    • OK

  • Apply and Close

Mesh - Create Group from Geometry

  • select Group from the Geometry part

do this for all parts

Mesh - Build Compound

  • Meshed, sub-meshed, groups - select all meshed

  • ☑ Create groups from input objects

  • ☐ Merge coincident nodes and elements. If activated it will merge the meshed like a contact condition, but because of seperatly meshing the nodes are not coincident and therefore this option is not useful. (Contact see LIAISON_MAIL)

3.4 Merge nodes

After meshing, especially after transforations.

Mesh - Modification - Remove - Merge Nodes

  • Apply and Close

3.5 Remove part of the mesh

Create a group of elements to remove. Or Modification - Remove - Elements. Options to remove polyhedrons for example:

  • Add

  • Criterion: Geometry type

  • Compare: Equal to

  • Threshold value: Polyhedra

  • 2x Apply and Close

3.6 Visualize element normals

right click in the OCC screen - Orientation of Faces

3.7 Read mesh

AsterStudy - Mesh - Read a mesh (LIRE_MAILLAGE )

  • Mesh file location (UNITE): link to the mesh. Either directly to the mesh from the Mesh module or to the MED-file.

3.8 Create nodal group from element group

AsterStudy - Mesh - DEFI_GROUP

  • Name - name it the same like the ’Read a mesh’ operation to extend the mesh.

  • Mesh (MAILLAGE) - link to the mesh (’Read a mesh’)

  • CREA_GROUP_NO

    • Group of element (GROUP_MA) - select group(s) of elements. For each group of elements, one creates a group of nodes. If NOM (name) is not provided, the groups of nodes will bear the same names as the groups of elements.

    • TOUT_GROUP_MA - create for all element groups a node group with same name.

3.9 Create element group of all elements

AsterStudy - Mesh - DEFI_GROUP

  • Name - name it the same like the ’Read a mesh’ operation to extend the mesh.

  • Mesh (MAILLAGE) - link to the mesh (’Read a mesh’)

  • CREA_GROUP_MA

    • All (TOUT): Yes (OUI)

    • NOM - name the group of elements, e.g. ’ALL’

3.10 Convert linear mesh to quadratic mesh

Converts SEG2 to SEG3, TRIA3 to TRIA6 and QUAD4 to QUAD8.

Note: New nodes are not included in node groups.

AsterStudy - Mesh - CREA_MAILLAGE

  • LINE_QUAD

    • At Least One

      • All (TOUT)

      • Group of element (GROUP_MA) - link to element group(s)

    • PREF_NOEUD - prefix for all new nodes created, e.g. NQ

  • Mesh (MAILLAGE) - link to the linear mesh

3.11 Convert quadratic mesh to full quadratic mesh

Converts TRIA6 to TRIA7 and QUAD8 to QUAD9.

Note: New nodes are not included in node groups.

AsterStudy - Mesh - CREA_MAILLAGE

  • MODI_MAILLE

    • [0]

      • At Least One

        • All (TOUT)

        • Group of element (GROUP_MA) - link to element group(s)

      • Option (OPTION): TRIA6_7

      • PREF_NOEUD - prefix for all new nodes created, e.g. NT

    • [1]

      • At Least One

        • All (TOUT)

        • Group of element (GROUP_MA) - link to element group(s)

      • Option (OPTION): QUAD8_9

      • PREF_NOEUD - prefix for all new nodes created, e.g. NT

  • Mesh (MAILLAGE) - link to the quadratic mesh

3.12 Mesh refinement and adaptive mesh

Mesh refinement uses the code_aster software tool HOMARD [1] (needs mesh TRIA, QUAD, TETRA, HEXA)

3.12.1 Uniformly meshing refinement

AsterStudy - Post Processing - MACR_ADAP_MAIL

  • MAILLAGE_N - link to the mesh to modify

  • MAILLAGE_NP1 - new mesh name (8 chars max and unused)

  • ADAPTATION

    • RAFFINEMENT_UNIFORME - only refinement, no coarsening

    • DERAFFINEMENT_UNIFORME - only coarsening, no refinement

    • RIEN - no changes

3.12.2 Locally meshing refinement

AsterStudy - Post Processing - MACR_ADAP_MAIL

  • MAILLAGE_N - link to the mesh to modify

  • MAILLAGE_NP1 - new mesh name (8 chars max and unused)

  • ADAPTATION

    • RAFF_DERA_ZONE - refinement or coarsening in a local defines zone

  • NONE - define the zone for refinement

3.12.3 Adaptive meshing refinement via stress error

AsterStudy - Post Processing - CALC_ERREUR - will also calculate SIGM_ELNO if not present

  • reuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • Option (OPTION)

    • ERME_ELEM - estimator of residual error in mechanics and stationary hydro-mechanics at elements

AsterStudy - Post Processing - MACR_ADAP_MAIL

  • MAILLAGE_N - link to the mesh to modify

  • MAILLAGE_NP1 - new mesh name (8 chars max and unused)

  • ADAPTATION

    • RAFF_DERA - refinement or coarsening

    • RAFFINEMENT - only refinement, no coarsening

    • DERAFFINEMENT - only coarsening, no refinement

  • RESULTAT_N - link to the post-processing result including adaptation field, e.g. error field (CALC_ERREUR)

  • NOM_CHAM - the field to control the adaptation

    • ERME_ELEM

  • NOM_CMP - field component to control the adaptation, if no components are specified, all are used

    • ERREST - total error estimate

  • Exacly One (for RAFFINEMENT)

    • CRIT_RAFF_PE - criterion fraction of element to refine in [0, 1], e.g. 0.1

    • CRIT_RAFF_ABS - criterion absolute value of the field to refine element

    • CRIT_RAFF_REL - criterion relative value [0, 1] of the field to refine element

    • CRIT_RAFF_MS - criterion root mean square RMS value of the field to refine element

3.12.4 Following curved edges

AsterStudy - Post Processing - MACR_ADAP_MAIL

  • ADAPTATION: RAFFINEMENT

  • MAILLAGE_FRONTIERE - link to a mesh for the refinement to follow curved border(s), i.e. a fine meshed mesh at least at curves so that new nodes follow the border (small element edges)

  • GROUP_MA_FRONT - group of the curved border

3.12.5 Refinement zone via X-FEM interface feature

Refinement via X-FEM interface zone, might be done in several iterations.

Number of refinement iterations \(n\ti{r}\), defined by initial element size \(h_0\) and target element size \(h\ti{t}\).

\[n\ti{r} = \left\lceil \frac{\log(h_0) - \log(h\ti{t})}{\log(2)} \right\rceil\]

The estimated end element size \(h\ti{e}\)

\[h\ti{e} = \frac{ h_0 }{ 2^{n\ti{r}} }\]

Define the interface for the mesh refinement. As an example a circle with radius r at the origin.

AsterStudy - Fracture and Fatigue - DEFI_FISS_XFEM

  • Mesh (MAILLAGE) - link to the current (last iterated) mesh

  • TYPE_DISCONTINUITE: INTERFACE

  • DEFI_FISS

    • FORM_FISS: ELLIPSE

    • DEMI_GRAND_AXE - define the semi-major axis, for a circle the radius

    • DEMI_PETIT_AXE - define the semi-major axis, for a circle the radius

    • CENTRE - define the center position, e.g. 0., 0., 0.

    • VECT_X - define the direction of one axis, e.g. 1., 0., 0.

    • VECT_Y - define the direction of the other axis, e.g. 0., 1., 0.

Compute the error critertion needed for XFEM interface mesh refinement

AsterStudy - Fracture and Fatigue - RAFF_XFEM

  • FISSURE - link to the xfem interface (DEFI_FISS_XFEM)

  • TYPE: ZONE - defining a zone for the field (value 1 inside the zone and 0 outside)

  • RAYON - zone radius along the interface

AsterStudy - Post Processing - MACR_ADAP_MAIL

  • MAILLAGE_N - link to the mesh to modify

  • MAILLAGE_NP1 - new mesh name (8 chars max and unused)

  • ADAPTATION: RAFFINEMENT

  • CHAM_GD - link to the error field (RAFF_XFEM)

  • CRIT_RAFF_ABS - criterion absolute value of the field to refine element, e.g. 0.5 (here the field values are either 0 or 1)

  • DIAM_MIN - the minimal target element diameter

  • ADD_CHAM

    • [0] calculate the element diameters for the whole mesh

      • CHAM_CAT: DIAMETRE

      • CHAM_GD - name for the field, e.g. diameter

    • [1] calculate the element quality

      • CHAM_CAT: QUALITE

      • CHAM_GD - name for the field, e.g. quality

    • [2] calculate the element level of refinements. In the first step; the initial mesh is 0, first refined elements in the zone are 1 and transition elements are 0.5. Second refinement; the refined elements inside the zone are 2 and the transition elements are 1.5, etc.

3.13 Export mesh in GMSH format

Create mesh and switch to AsterStudy module. Add a stage and then add the “Read a mesh” function and select the mesh. After that add under Output “Set output results” and give the output a name, select under Results the mesh and finally choose with “Format” GMSH. Save the study then run it.

To export the groups of nodes and elements one has to export the mesh first in MED format and import it back in and do the procedure above.

4 Model - Element Type

Note: If not all elements are of the same modelisation type, then each element type needs an element group.

Note: One phenomenon (mechanic, thermic, acuostic) can have only one model assignment.

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exacly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE)

      • Mechanic (MECANIQUE)

      • Thermic (THERMIQUE)

    • Modelisation (MODELISATION):

      • Mechanic

        • 0D and 1D

          • 2D_DIS_T - POI1 SEG2

          • 2D_DIS_TR - POI1 SEG2

          • DIS_T - POI1 SEG2 - Discrete translation element, for e.g. spring and damping elements

          • DIS_TR - POI1 SEG2 - Discrete translation and rotation element

        • 1D

          • CABLE - SEG2 - cable

          • 2D_BARRE - SEG2 - bar in xy-plane

          • BARRE - SEG2 - bar

          • POU_D_E - SEG2 - straight Euler–Bernoulli beam, significant slenderness

          • POU_D_EM - SEG2 - straight multifibre beam, significant slenderness

          • POU_D_T - SEG2 - straight Timoshenko beam, small slenderness

          • POU_D_TG - SEG2 - straight Timoshenko beam with warping of the section, thin-walled section (sections I, H, L)

          • POU_D_TGM - SEG2 - straight multifibre Timoshenko beam with warping of the section, thin-walled section (sections I, H, L)

          • POU_D_T_GD - SEG2 - straight Timoshenko beam for large displacements and large rotations, small slenderness

          • POU_C_T - REMOVED! - SEG2 - curved Timoshenko beam, small slenderness

          • TUYAU_3M - SEG3,4 - linear pipe element (straight or curved) combination of Timoshenko beam for displacements and rotations at neutral axis and shell for the deformations of the transverse section (ovalization, warping, swelling). Using 3 modes of Fourier.

          • TUYAU_6M - SEG3 - linear pipe element (straight or curved) combination of Timoshenko beam for displacements and rotations at neutral axis and shell for the deformations of the transverse section (ovalization, warping, swelling). Using 6 modes of Fourier.

        • 2D

          • AXIS - TRIA3,6 QUAD4,8,9 - axisymmetric element, about the y axis.

          • C_PLAN - TRIA3,6 QUAD4,8,9 - 2d plate, plane stress model

          • D_PLAN - TRIA3,6 QUAD4,8,9 - 2d plate, plane strain model

          • DKT - TRIA3 QUAD4 - relativelly flat Hencky-Coils-Kirchhoff plate (span to thickness ration > 30, no transverse shear deformation)

          • DST - TRIA3 QUAD4 - Reissner plate, first order Shear Deformation Theory (transverse energy of shearing in elasticity) (shell is thicker (span / thickness ration between 15 and 30) but curvature is negligible) (??? use 5/6=~0.8333 as shear correction factor for a better accuracy)

          • DKTG - TRIA3 QUAD4 - Hencky-Coils-Kirchhoff plate, dedicated to the “total” relations of behavior, which have only one sleep and one point of integration in the thickness

          • Q4G (Q4:math:gamma) - QUAD4 - Reissner plate with transverse energy of shearing in elasticity, but with another interpolation that for modeling DST

          • Q4GG - QUAD4 - dedicated to thick Reissner plates

          • COQUE_3D - TRIA7 QUAD9 - 3D shell formulation (shell is thick and significantly curved)

          • MEMBRANE - TRIA3,6,7 QUAD4,8,9

        • 3D

          • 3D - TETRA4,10 PYRAM5,13 PENTA6,15 HEXA8,20,27 - solid

          • SHB - PENTA6,15 HEXA8,20 - 5 points of integration, distributed in the thickness. To avoid blockings the modes of hourglass are stabilized by the “Assumed strain méthod”.

  • Mesh (MAILLAGE)

4.1 Discrete element - Spring, Damping and Mass

Material properties are directly defined with the element properties.

Spring and Damping needs a point/node (0D) or line (1D) element.

Mass needs a point/node (0D) element. Mass element needs not only the element group but also a node group.

Mesh - Modification - Add - 0D Element

  • Node IDs - select the node(s) for 0D Element(s)

  • Add to group

    • Group - name the element group, e.g. massE (E for element)

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • DISCRET or DISCRET_2D

    • [0] stiffness

      • CARA

        • K_TR_D_L - stiffness translation and rotation diagonal matrix line (1D) element, 3D 6 values, 2D 3 values

        • K_TR_D_N - stiffness translation and rotation diagonal matrix node (0D) element, 3D 6 values, 2D 3 values

        • K_TR_L - stiffness translation and rotation full (not symmetrical) matrix line (1D) element, 3D 78 values (144 values for not symmetrical), 2D 21 values (36 values for not symmetrical)

        • K_TR_N - stiffness translation and rotation full (not symmetrical) matrix node (0D) element, 3D 21 values (36 values for not symmetrical), 2D 6 values (9 values for not symmetrical)

        • K_T_D_L - stiffness translation diagonal matrix line (1D) element, 3D 3 values, 2D 2 values

        • K_T_D_N - stiffness translation diagonal matrix node (0D) element, 3D 3 values, 2D 2 values

        • K_T_L - stiffness translation full (not symmetrical) matrix line (1D) element, 3D 21 values (36 values for not symmetrical), 2D 10 values (16 values for not symmetrical)

        • K_T_N - stiffness translation full (not symmetrical) matrix node (0D) element, 3D 6 values (9 values for not symmetrical), 2D 3 values (4 values for not symmetrical)

      • Value (VALE) - specify the stiffness values for the spring element.

      • Group of element (GROUP_MA) - link to the spring element group

    • [1] damping

      • CARA

        • A_TR_D_L - damping translation and rotation diagonal matrix line (1D) element, 3D 6 values, 2D 3 values

        • A_TR_D_N - damping translation and rotation diagonal matrix node (0D) element, 3D 6 values, 2D 3 values

        • A_TR_L - damping translation and rotation full (not symmetrical) matrix line (1D) element, 3D 78 values (144 values for not symmetrical), 2D 21 values (36 values for not symmetrical)

        • A_TR_N - damping translation and rotation full (not symmetrical) matrix node (0D) element, 3D 21 values (36 values for not symmetrical), 2D 6 values (9 values for not symmetrical)

        • A_T_D_L - damping translation diagonal matrix line (1D) element, 3D 3 values, 2D 2 values

        • A_T_D_N - damping translation diagonal matrix node (0D) element, 3D 3 values, 2D 2 values

        • A_T_L - damping translation full (not symmetrical) matrix line (1D) element, 3D 21 values (36 values for not symmetrical), 2D 10 values (16 values for not symmetrical)

        • A_T_N - damping translation full (not symmetrical) matrix node (0D) element, 3D 6 values (9 values for not symmetrical), 2D 3 values (4 values for not symmetrical)

      • Value (VALE) - specify the damping values for the damping element.

      • Group of element (GROUP_MA) - link to the damping element group

    • [2] mass

      • CARA

        • M_TR_D_L - mass translation and rotation diagonal matrix line (1D) element, 3D 4 values, 2D 4 values

        • M_TR_D_N - mass translation and rotation diagonal matrix node (0D) element, 3D 10 values, 2D not available

        • M_TR_L - mass translation and rotation full (not symmetrical) matrix line (1D) element, 3D 78 values (144 values for not symmetrical), 2D 21 values (36 for not symmetrical)

        • M_TR_N - mass translation and rotation full (not symmetrical) matrix node (0D) element, 3D 21 values (36 values), 2D 6 values (9 values)

        • M_T_D_L - mass translation diagonal matrix line (1D) element, 3D 1 value, 2D 1 value

        • M_T_D_N - mass translation diagonal matrix node (0D) element, 3D 1 value, 2D 1 value

        • M_T_L - mass translation full (not symmetrical) matrix line (1D) element, 3D 21 values (36 values), 2D 10 values (16 values)

        • M_T_N - mass translation full (not symmetrical) matrix node (0D) element, 3D 6 values (9 values), 2D 3 values (4 values)

      • Value (VALE) - specify the mass value for the mass element.

      • Group of element (GROUP_MA) - link to the mass element group

    • AMOR_HYST - coefficient \(a\ti{h}\) used for complex stiffness matrix \((1+j\,a\ti{h})K\) for hysteretic damping. K defined here above. The complex stiffness matrix will be built with CALC_MATR_ELEM . See test SDLD313 and Modeling of damping in dynamics linear.

K_T_D_N or A_T_D_N with SYME='OUI'. 2 values in 2D (x,y), 3 values in 3D (x,y,z).

\[\begin{split}K\ti{T\_D\_N}\ho{2D-2} = \begin{bmatrix} k_1 & 0 \\ 0 & k_2 \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{T\_D\_N}\ho{3D-3} = \begin{bmatrix} k_1 & 0 & 0 \\ 0 & k_2 & 0 \\ 0 & 0 & k_3 \end{bmatrix}\end{split}\]

K_T_D_L or A_T_D_L with SYME='OUI'. 2 valuesin 2D (x,y), 3 values in (x,y,z). Following assembly is performed with K defined for K_T_D_N or A_T_D_N

\[\begin{split}K\ti{T\_D\_L} = \begin{bmatrix} K\ti{T\_D\_N} & -K\ti{T\_D\_N} \\ -K\ti{T\_D\_N} & K\ti{T\_D\_N} \end{bmatrix}\end{split}\]

K_TR_D_N or A_TR_D_N with SYME='OUI'. 3 values in 3D (x,y,rz), 6 values in 3D (x,y,z,rx,ry,rz).

\[\begin{split}K\ti{TR\_D\_N}\ho{2D-3} = \begin{bmatrix} k_1 & 0 & 0 \\ 0 & k_2 & 0 \\ 0 & 0 & k_3 \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{TR\_D\_N}\ho{3D-6} = \begin{bmatrix} k_1 & 0 & 0 & 0 & 0 & 0 \\ 0 & k_2 & 0 & 0 & 0 & 0 \\ 0 & 0 & k_3 & 0 & 0 & 0 \\ 0 & 0 & 0 & k_4 & 0 & 0 \\ 0 & 0 & 0 & 0 & k_5 & 0 \\ 0 & 0 & 0 & 0 & 0 & k_6 \end{bmatrix}\end{split}\]

K_TR_D_L or A_TR_D_L with SYME='OUI'. 3 values in 2D (x,y,rz), 6 values in 3D (x,y,z,rx,ry,rz). Following assembly is performed with K defined for K_TR_D_N or A_TR_D_N

\[\begin{split}K\ti{TR\_D\_L} = \begin{bmatrix} K\ti{TR\_D\_N} & -K\ti{TR\_D\_N} \\ -K\ti{TR\_D\_N} & K\ti{TR\_D\_N} \end{bmatrix}\end{split}\]

K_T_N or A_T_N with SYME='OUI'. 3 values in 2D (x,y), 6 values in 3D (x,y,z).

\[\begin{split}K\ti{T\_N}\ho{2D-3} = \begin{bmatrix} k_1 & k_2 \\ & k_3 \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{T\_N}\ho{3D-6} = \begin{bmatrix} k_1 & k_2 & k_4 \\ & k_3 & k_5 \\ & & k_6 \end{bmatrix}\end{split}\]

with SYME='NON'. 4 values in 2D (x,y), 9 values in 3D (x,y,z).

\[\begin{split}K\ti{T\_N}\ho{2D-4} = \begin{bmatrix} k_1 & k_3 \\ k_2 & k_4 \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{T\_N}\ho{3D-9} = \begin{bmatrix} k_1 & k_4 & k_7 \\ k_2 & k_5 & k_8 \\ k_3 & k_6 & k_9 \end{bmatrix}\end{split}\]

K_T_L or A_T_L with SYME='OUI'. 10 values in 2D (x1,y1,x2,y2), 21 values in 3D (x1,y1,z1,x2,y2,z2).

\[\begin{split}K\ti{T\_L}\ho{2D-10} = \begin{bmatrix} k_1 & k_2 & k_4 & k_7 \\ & k_3 & k_5 & k_8 \\ & & k_6 & k_9 \\ & & & k_{10} \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{T\_L}\ho{3D-21} = \begin{bmatrix} k_1 & k_2 & k_4 & k_7 & k_{11} & k_{16} \\ & k_3 & k_5 & k_8 & k_{12} & k_{17} \\ & & k_6 & k_9 & k_{13} & k_{18} \\ & & & k_{10} & k_{14} & k_{19} \\ & & & & k_{15} & k_{20} \\ & & & & & k_{21} \end{bmatrix}\end{split}\]

with SYME='NON'. 16 values in 2D (x1,y1,x2,y2), 36 values in 3D (x1,y1,z1,x2,y2,z2).

\[\begin{split}K\ti{T\_L}\ho{2D-16} = \begin{bmatrix} k_1 & k_5 & k_9 & k_{13} \\ k_2 & k_6 & k_{10} & k_{14} \\ k_3 & k_7 & k_{11} & k_{15} \\ k_4 & k_8 & k_{12} & k_{16} \end{bmatrix}\end{split}\]
\[\begin{split}K\ti{T\_L}\ho{3D-36} = \begin{bmatrix} k_1 & k_7 & k_{13} & k_{19} & k_{25} & k_{31} \\ k_2 & k_8 & k_{14} & k_{20} & k_{26} & k_{32} \\ k_3 & k_9 & k_{15} & k_{21} & k_{27} & k_{33} \\ k_4 & k_{10} & k_{16} & k_{22} & k_{28} & k_{34} \\ k_5 & k_{11} & k_{17} & k_{23} & k_{29} & k_{35} \\ k_6 & k_{12} & k_{18} & k_{24} & k_{30} & k_{36} \end{bmatrix}\end{split}\]

K_TR_N or A_TR_N with SYME='OUI'. 6 values in 2D (x,y,rz), 21 values in 3D (x,y,z,rx,ry,rz).

\[K\ti{TR\_N}\ho{2D-6} \overset{\wedge}{=} K\ti{T\_N}\ho{3D-6}\]
\[K\ti{TR\_N}\ho{3D-21} \overset{\wedge}{=} K\ti{T\_L}\ho{3D-21}\]

with SYME='NON'. 9 values in 2D (x,y,rz), 36 values in 3D (x,y,z,rx,ry,rz).

\[K\ti{TR\_N}\ho{2D-9} \overset{\wedge}{=} K\ti{T\_N}\ho{3D-9}\]
\[K\ti{TR\_N}\ho{3D-36} \overset{\wedge}{=} K\ti{T\_L}\ho{3D-36}\]

K_TR_L or A_TR_L with SYME='OUI'. 21 values in 2D (x1,y1,rz1,x2,y2,rz2), 78 values in 3D (x1,y1,z1,rx1,ry1,rz1,x2,y2,z2,rx2,ry2,rz2).

\[K\ti{TR\_L}\ho{2D-21} \overset{\wedge}{=} K\ti{TR\_N}\ho{3D-21} \overset{\wedge}{=} K\ti{T\_L}\ho{3D-21}\]
\[\begin{split}K\ti{TR\_L}\ho{3D-78} = \begin{bmatrix} k_1 & k_2 & k_4 & k_7 & k_{11} & k_{16} & k_{22} & k_{29} & k_{37} & k_{46} & k_{56} & k_{67} \\ & k_3 & k_5 & k_8 & k_{12} & k_{17} & k_{23} & k_{30} & k_{38} & k_{47} & k_{57} & k_{68} \\ & & k_6 & k_9 & k_{13} & k_{18} & k_{24} & k_{31} & k_{39} & k_{48} & k_{58} & k_{69} \\ & & & k_{10} & k_{14} & k_{19} & k_{25} & k_{32} & k_{40} & k_{49} & k_{59} & k_{70} \\ & & & & k_{15} & k_{20} & k_{26} & k_{33} & k_{41} & k_{50} & k_{60} & k_{71} \\ & & & & & k_{21} & k_{27} & k_{34} & k_{42} & k_{51} & k_{61} & k_{72} \\ & & & & & & k_{28} & k_{35} & k_{43} & k_{52} & k_{62} & k_{73} \\ & & & & & & & k_{36} & k_{44} & k_{53} & k_{63} & k_{74} \\ & & & & & & & & k_{45} & k_{54} & k_{64} & k_{75} \\ & & & & & & & & & k_{55} & k_{65} & k_{76} \\ & & & & & & & & & & k_{66} & k_{77} \\ & & & & & & & & & & & k_{78} \end{bmatrix}\end{split}\]

with SYME='NON'. 36 values in 2D (x1,y1,rz1,x2,y2,rz2), 144 values in 3D (x1,y1,z1,rx1,ry1,rz1,x2,y2,z2,rx2,ry2,rz2).

\[K\ti{TR\_L}\ho{2D-36} \overset{\wedge}{=} K\ti{TR\_N}\ho{3D-36} \overset{\wedge}{=} K\ti{T\_L}\ho{3D-36}\]
\[\begin{split}K\ti{TR\_L}\ho{3D-144} = \begin{bmatrix} k_1 & k_{13} & k_{25} & k_{37} & k_{49} & k_{61} & k_{73} & k_{85} & k_{97} & k_{109} & k_{121} & k_{133} \\ k_2 & k_{14} & k_{26} & k_{38} & k_{50} & k_{62} & k_{74} & k_{86} & k_{98} & k_{110} & k_{122} & k_{134} \\ k_3 & k_{15} & k_{27} & k_{39} & k_{51} & k_{63} & k_{75} & k_{87} & k_{99} & k_{111} & k_{123} & k_{135} \\ k_4 & k_{16} & k_{28} & k_{40} & k_{52} & k_{64} & k_{76} & k_{88} & k_{100} & k_{112} & k_{124} & k_{136} \\ k_5 & k_{17} & k_{29} & k_{41} & k_{53} & k_{65} & k_{77} & k_{89} & k_{101} & k_{113} & k_{125} & k_{137} \\ k_6 & k_{18} & k_{30} & k_{42} & k_{54} & k_{66} & k_{78} & k_{90} & k_{102} & k_{114} & k_{126} & k_{138} \\ k_7 & k_{19} & k_{31} & k_{43} & k_{55} & k_{67} & k_{79} & k_{91} & k_{103} & k_{115} & k_{127} & k_{139} \\ k_8 & k_{20} & k_{32} & k_{44} & k_{56} & k_{68} & k_{80} & k_{92} & k_{104} & k_{116} & k_{128} & k_{140} \\ k_9 & k_{21} & k_{33} & k_{45} & k_{57} & k_{69} & k_{81} & k_{93} & k_{105} & k_{117} & k_{129} & k_{141} \\ k_{10} & k_{22} & k_{34} & k_{46} & k_{58} & k_{70} & k_{82} & k_{94} & k_{106} & k_{118} & k_{130} & k_{142} \\ k_{11} & k_{23} & k_{35} & k_{47} & k_{59} & k_{71} & k_{83} & k_{95} & k_{107} & k_{119} & k_{131} & k_{143} \\ k_{12} & k_{24} & k_{36} & k_{48} & k_{60} & k_{72} & k_{84} & k_{96} & k_{108} & k_{120} & k_{132} & k_{144} \end{bmatrix}\end{split}\]

M_T_D_N with SYME='OUI'. 1 value in 2D and 3D (x,y,z): 1 mass value \(m\).

\[\begin{split}M\ti{T\_D\_N}\ho{3D-1} = \begin{bmatrix} m & 0 & 0 \\ 0 & m & 0 \\ 0 & 0 & m \end{bmatrix}\end{split}\]

M_TR_D_N with SYME='OUI'. 10 values in 3D (x,y,z,rx,ry,rz). Not available in 2D. 1 mass value \(m\), 6 moment of inertia tensor values \(I\ti{xx}\), \(I\ti{yy}\), \(I\ti{zz}\), \(I\ti{xy}\), \(I\ti{yz}\), \(I\ti{xz}\) and 3 perpendicular distances between the axes (parallel axis through the object’s center of gravity, the node) \(e\ti{x}\), \(e\ti{y}\), \(e\ti{z}\) (direction from node to the mass).

\[\begin{split}M\ti{TR\_D\_N}\ho{3D-10} = \begin{bmatrix} m & 0 & 0 & 0 & m\,e\ti{z} & -m\,e\ti{y} \\ & m & 0 & -m\,e\ti{z} & 0 & m\,e\ti{x} \\ & & m & m\,e\ti{y} & -m\,e\ti{x} & 0 \\ & & & V\ti{xx} & V\ti{xy} & V\ti{xz} \\ & & & & V\ti{yy} & V\ti{yz} \\ & & & & & V\ti{zz} \end{bmatrix}\end{split}\]

where

\[\begin{split}\begin{split} V\ti{xx} &= I\ti{xx} + m(e\ti{y}^2 + e\ti{z}^2) \\ V\ti{yy} &= I\ti{yy} + m(e\ti{x}^2 + e\ti{z}^2) \\ V\ti{zz} &= I\ti{zz} + m(e\ti{x}^2 + e\ti{y}^2) \\ V\ti{xy} &= I\ti{xy} - me\ti{x}e\ti{y} \\ V\ti{yz} &= I\ti{yz} - me\ti{y}e\ti{z} \\ V\ti{xz} &= I\ti{xz} - me\ti{x}e\ti{z} \end{split}\end{split}\]

M_T_N with SYME='OUI'. 3 values in 2D (x,y), 6 values in 3D (x,y,z).

\[\begin{split}M\ti{T\_N}\ho{2D-3} = \begin{bmatrix} m_1 & m_2 \\ & m_3 \end{bmatrix}\end{split}\]
\[\begin{split}M\ti{T\_N}\ho{3D-6} = \begin{bmatrix} m_1 & m_2 & m_4 \\ & m_3 & m_5 \\ & & m_6 \end{bmatrix}\end{split}\]

with SYME='NON'. 4 values in 2D (x,y), 9 values in 3D (x,y,z).

\[\begin{split}M\ti{T\_N}\ho{2D-4} = \begin{bmatrix} m_1 & m_3 \\ m_2 & m_4 \end{bmatrix}\end{split}\]
\[\begin{split}M\ti{T\_N}\ho{3D-9} = \begin{bmatrix} m_1 & m_4 & m_7 \\ m_2 & m_5 & m_8 \\ m_3 & m_6 & m_9 \end{bmatrix}\end{split}\]

M_TR_N with SYME='OUI'. 6 values in 2D (x,y,rz), 21 values in 3D (x,y,z,rx,ry,rz).

\[M\ti{TR\_N}\ho{2D-6} \overset{\wedge}{=} M\ti{T\_N}\ho{3D-6}\]
\[\begin{split}M\ti{TR\_N}\ho{3D-21} = \begin{bmatrix} m_1 & m_2 & m_4 & m_7 & m_{11} & m_{16} \\ & m_3 & m_5 & m_8 & m_{12} & m_{17} \\ & & m_6 & m_9 & m_{13} & m_{18} \\ & & & m_{10} & m_{14} & m_{19} \\ & & & & m_{15} & m_{20} \\ & & & & & m_{21} \end{bmatrix}\end{split}\]

with SYME='NON'. 9 values in 2D (x,y,rz), 36 values in 3D (x,y,z,rx,ry,rz).

\[M\ti{TR\_N}\ho{2D-9} \overset{\wedge}{=} M\ti{T\_N}\ho{3D-9}\]
\[\begin{split}M\ti{TR\_N}\ho{3D-36} = \begin{bmatrix} m_1 & m_7 & m_{13} & m_{19} & m_{25} & m_{31} \\ m_2 & m_8 & m_{14} & m_{20} & m_{26} & m_{32} \\ m_3 & m_9 & m_{15} & m_{21} & m_{27} & m_{33} \\ m_4 & m_{10} & m_{16} & m_{22} & m_{28} & m_{34} \\ m_5 & m_{11} & m_{17} & m_{23} & m_{29} & m_{35} \\ m_6 & m_{12} & m_{18} & m_{24} & m_{30} & m_{36} \end{bmatrix}\end{split}\]

M_T_L with SYME='OUI'. 10 values in 2D (x1,y1,x2,y2), 21 values in 3D (x1,y1,z1,x2,y2,z2).

\[\begin{split}M\ti{T\_L}\ho{2D-10} = \begin{bmatrix} m_1 & m_2 & m_4 & m_7 \\ & m_3 & m_5 & m_8 \\ & & m_6 & m_9 \\ & & & m_{10} \end{bmatrix}\end{split}\]
\[M\ti{T\_L}\ho{3D21} \overset{\wedge}{=} M\ti{TR\_N}\ho{3D-21}\]

M_T_D_L with SYME='OUI'. 1 value in 2D (x1,y1,x2,y2) and 3D (x1,y1,z1,x2,y2,z2). Following assembly is performed with M defined for M_T_D_N

\[\begin{split}M\ti{T\_D\_L} = \begin{bmatrix} M\ti{T\_D\_N} & \\ & M\ti{T\_D\_N} \end{bmatrix}\end{split}\]

M_T_L with SYME='NON'. 16 values in 2D (x1,y1,x2,y2), 36 values in 3D (x1,y1,z1,x2,y2,z2).

\[\begin{split}M\ti{T\_L}\ho{2D-16} = \begin{bmatrix} m_1 & m_5 & m_9 & m_{13} \\ m_2 & m_6 & m_{10} & m_{14} \\ m_3 & m_7 & m_{11} & m_{15} \\ m_4 & m_8 & m_{12} & m_{16} \end{bmatrix}\end{split}\]
\[M\ti{T\_L}\ho{3D-36} \overset{\wedge}{=} M\ti{TR\_N}\ho{3D-36}\]

M_TR_L with SYME='OUI'. 21 values in 2D (x1,y1,rz1,x2,y2,rz2), 78 values in 3D (x1,y1,z1,rx1,ry1,rz1,x2,y2,z2,rx1,ry2,rz2).

\[M\ti{TR\_L}\ho{2D-21} \overset{\wedge}{=} M\ti{T\_L}\ho{3D21} \overset{\wedge}{=} M\ti{TR\_N}\ho{3D-21}\]
\[\begin{split}M\ti{TR\_L}\ho{3D-78} = \begin{bmatrix} m_1 & m_2 & m_4 & m_7 & m_{11} & m_{16} & m_{22} & m_{29} & m_{37} & m_{46} & m_{56} & m_{67} \\ & m_3 & m_5 & m_8 & m_{12} & m_{17} & m_{23} & m_{30} & m_{38} & m_{47} & m_{57} & m_{68} \\ & & m_6 & m_9 & m_{13} & m_{18} & m_{24} & m_{31} & m_{39} & m_{48} & m_{58} & m_{69} \\ & & & m_{10} & m_{14} & m_{19} & m_{25} & m_{32} & m_{40} & m_{49} & m_{59} & m_{70} \\ & & & & m_{15} & m_{20} & m_{26} & m_{33} & m_{41} & m_{50} & m_{60} & m_{71} \\ & & & & & m_{21} & m_{27} & m_{34} & m_{42} & m_{51} & m_{61} & m_{72} \\ & & & & & & m_{28} & m_{35} & m_{43} & m_{52} & m_{62} & m_{73} \\ & & & & & & & m_{36} & m_{44} & m_{53} & m_{63} & m_{74} \\ & & & & & & & & m_{45} & m_{54} & m_{64} & m_{75} \\ & & & & & & & & & m_{55} & m_{65} & m_{76} \\ & & & & & & & & & & m_{66} & m_{77} \\ & & & & & & & & & & & m_{78} \end{bmatrix}\end{split}\]

M_TR_D_L with SYME='OUI'. 2 values in 2D (x1,y1,rz1,x2,y2,rz2), 4 values in 3D (x1,y1,z1,rx1,ry1,rz1,x2,y2,z2,rx1,ry2,rz2).

\[\begin{split}M\ti{TR\_D\_L}\ho{2D-2} = \begin{bmatrix} m_1 & 0 & 0 & 0 & 0 & 0 \\ 0 & m_1 & 0 & 0 & 0 & 0 \\ 0 & 0 & m_2 & 0 & 0 & 0 \\ 0 & 0 & 0 & m_1 & 0 & 0 \\ 0 & 0 & 0 & 0 & m_1 & 0 \\ 0 & 0 & 0 & 0 & 0 & m_2 \end{bmatrix}\end{split}\]
\[\begin{split}M\ti{TR\_D\_L}\ho{3D-4} = \begin{bmatrix} m_1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & m_1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & m_1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & m_2 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & m_3 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & m_4 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & m_1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_2 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_3 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & m_4 \end{bmatrix}\end{split}\]

M_TR_L with SYME='NON'. 36 values in 2D (x1,y1,rz1,x2,y2,rz2), 144 values in 3D (x1,y1,z1,rx1,ry1,rz1,x2,y2,z2,rx1,ry2,rz2).

\[M\ti{TR\_L}_{2D-36} \overset{\wedge}{=} M\ti{T\_L}\ho{3D-36} \overset{\wedge}{=} M\ti{TR\_N}\ho{3D-36}\]
\[\begin{split}M\ti{TR\_L}\ho{3D-144} = \begin{bmatrix} m_1 & m_{13} & m_{25} & m_{37} & m_{49} & m_{61} & m_{73} & m_{85} & m_{97} & m_{109} & m_{121} & m_{133} \\ m_2 & m_{14} & m_{26} & m_{38} & m_{50} & m_{62} & m_{74} & m_{86} & m_{98} & m_{110} & m_{122} & m_{134} \\ m_3 & m_{15} & m_{27} & m_{39} & m_{51} & m_{63} & m_{75} & m_{87} & m_{99} & m_{111} & m_{123} & m_{135} \\ m_4 & m_{16} & m_{28} & m_{40} & m_{52} & m_{64} & m_{76} & m_{88} & m_{100} & m_{112} & m_{124} & m_{136} \\ m_5 & m_{17} & m_{29} & m_{41} & m_{53} & m_{65} & m_{77} & m_{89} & m_{101} & m_{113} & m_{125} & m_{137} \\ m_6 & m_{18} & m_{30} & m_{42} & m_{54} & m_{66} & m_{78} & m_{90} & m_{102} & m_{114} & m_{126} & m_{138} \\ m_7 & m_{19} & m_{31} & m_{43} & m_{55} & m_{67} & m_{79} & m_{91} & m_{103} & m_{115} & m_{127} & m_{139} \\ m_8 & m_{20} & m_{32} & m_{44} & m_{56} & m_{68} & m_{80} & m_{92} & m_{104} & m_{116} & m_{128} & m_{140} \\ m_9 & m_{21} & m_{33} & m_{45} & m_{57} & m_{69} & m_{81} & m_{93} & m_{105} & m_{117} & m_{129} & m_{141} \\ m_{10} & m_{22} & m_{34} & m_{46} & m_{58} & m_{70} & m_{82} & m_{94} & m_{106} & m_{118} & m_{130} & m_{142} \\ m_{11} & m_{23} & m_{35} & m_{47} & m_{59} & m_{71} & m_{83} & m_{95} & m_{107} & m_{119} & m_{131} & m_{143} \\ m_{12} & m_{24} & m_{36} & m_{48} & m_{60} & m_{72} & m_{84} & m_{96} & m_{108} & m_{120} & m_{132} & m_{144} \end{bmatrix}\end{split}\]
4.1.1 Define a spring

Example for an axisymmetric model (2d about the y axis). Define a spring with stiffness k at a point/node effective in axis (y) direction.

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exacly One

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE)

      • Mechanic (MECANIQUE)

    • Modelisation (MODELISATION):

  • Mesh (MAILLAGE)

\[\begin{split}K = \begin{bmatrix} k_1 & k_2 \\ & k_3 \end{bmatrix} = \begin{bmatrix} 1 & 0 \\ & k \end{bmatrix}\end{split}\]

The one in x direction is needed for a regular matrix.

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • DISCRET_2D

    • [1] - set stiffness of point element

      • CARA: K_T_N

      • Value (VALE): 1, 0, k - specify the stiffness value for the spring element

      • Group of element (GROUP_MA) - link to the spring element group

    • [0]

      • CARA: M_T_D_N

      • Value (VALE): 0, 0, 0 - no mass for the spring element

      • Group of element (GROUP_MA) - link to the spring element group

4.1.2 Define point mass

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • DISCRET

    • [0]

      • CARA: M_T_D_N

      • Value (VALE) - specify the mass value for the mass element

      • Group of element (GROUP_MA) - link to the mass element group

    • [1] - set stiffness of point element to null stiffness although this is not necessary, but would raise a warning without this block

      • CARA: K_T_D_N

      • Value (VALE): 0, 0, 0

      • Group of element (GROUP_MA) - link to the mass element group

4.2 Bar

4.2.1 Define circle cross-section

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • BARRE (bar)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: CERCLE - define circle cross-section

      • CARA

        • R - radius

        • EP - thickness

      • Value (VALE)

4.2.2 Define rectangle cross-section

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • BARRE (bar)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: RECTANGLE - define rectangle cross-section

      • CARA

        • Either square cross-section

          • H - square edge length

          • EP - square thickness

        • Or generall rectangle cross-section

          • HY - edge length in local y direction

          • HZ - edge length in local z direction

          • EPY - thickness in local y direction

          • EPZ - thickness in local z direction

      • Value (VALE)

4.2.3 Define genaral cross-section

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • BARRE (bar)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: GENERALE - define general cross-section

      • CARA: A - area

      • Value (VALE)

4.3 Beam

see reference Exact beam elements POU_D_E and POU_D_T.

Local beam element lenth [-1;1], Gauß points are located at \([-1/\sqrt{3} ; 1/\sqrt{3}]\).

4.3.1 Define circle cross-section

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • POUTRE (beam)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: CERCLE

      • CARA

        • R - radius

        • EP - thickness

      • Value (VALE)

4.3.2 Define rectangle cross-section

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • POUTRE (beam)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: RECTANGLE - define rectangle cross-section

      • CARA

        • Either square cross-section

          • H - square edge length

          • EP - square thickness

        • Or generall rectangle cross-section

          • HY - edge length in local y direction

          • HZ - edge length in local z direction

          • EPY - thickness in local y direction

          • EPZ - thickness in local z direction

      • Value (VALE)

4.3.3 Define general cross-section manually

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • POUTRE (beam)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: GENERALE

      • CARA

        • A Area.

        • IY Principal Geometrical Moment of Inertia compared to GY.

        • IZ Principal Geometrical Moment of Inertia compared to GZ.

        • JX Torsion Constant.

        • RY Distance from reference of beam section to the centroid in y direction.

        • RZ Distance from reference of beam section to the centroid in z direction.

        • AY Shear Coefficient of GY.

        • AZ Shear Coefficient of GZ.

      • Value (VALE) - define the values of all the parameters

  • Model (MODELE) - link to the model

  • ORIENTATION

    • CARA: VECT_Y (local coordinate y)

    • Value (VALE) - set the orientation of the local coordinate y direction regarding the global coordinate system x, y, z, e.g. 0; 0; 1 to point to the global z direction.

    • Group of element (GROUP_MA) - the group of elements where the orientation should be applied to

4.3.4 Define general cross-section calculated

Requirements to acquire the cross-section one need an entire geometry model and a mesh.

  • Geometry must be in XY plane, a line group of the perimeter and a node group of one node must be prepared (shear centre?).

  • Mesh the geometry of the cross section and create groups from geometry (perimeter and node).

  • AsterStudy - Mesh - Read a mesh (LIRE_MAILLAGE )

    • Mesh file location (UNITE) - link to the mesh of the cross section

AsterStudy - Model Definition - MACR_CARA_POUTRE

  • ignore Filename, not needed

  • Mesh - link to the mesh

  • GROUP_MA_BORD - link to the perimeter / the outer border group of the entire cross section. This is needed for the calculation of the mechanical characteristics.

  • GROUP_MA_INTE - optionally link to the inner border group of the entire cross section, in case of a hollow cross section.

  • Group of node (GROUP_NO) - link to the group with the node

  • TABLE_CARA: Yes (OUI) - With this option is present, the produced table contains only the parameters useful to AFFE_CARA_ELEM.

  • NOM (Name) - define a name for the section, e.g. section. Useful to AFFE_CARA_ELEM.

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • POUTRE (beam)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: GENERALE

    • TABLE_CARA - link to the table (MACR_CARA_POUTRE)

    • NOM_SEC - enter the defined name of the section, e.g. section.

  • Model (MODELE) - link to the model

Note: For meshed cross-section the lower value of the both bending moment of inertia will correspond to the local y-axis. The local y-axis can be orientated with VECT_Y given in global coordinates. Here the the VECT_Y will be projected to the cross-section along plane x-VECT-Y.

Optionally export the cross section parameters into a file.

  • AsterStudy - Output - IMPR_TABLE

    • TABLE - link to the table (MACR_CARA_POUTRE)

    • Filename (UNITE) - define the location and the filename of the table file, e.g. crosssection.

4.3.5 Multifibre, composite, reinforcement

For composite cross-sections each element of the cross-section is called a fibre and is calculated as a beam, therefor in total it is a multifibre beam. Fibres can have different beam element types, like Euler-Bernulli or Timoshenko, and properties.

Two things has to be defined, on one side the entire section with AFFE_CARA_ELEM without information of composites / multifires, just the geometrical cross-section. On the other hand the fibers DEFI_GEOM_FIBRE. For reinforced beams for example this means to define / mesh the matrix (SECTION are also fibres), concrete for example, but cut out the reinforcements here and then the reinforcements (FIBRE) itself, steel for example. Together the matrix and the reinforcements define the same area as the specified entire cross-section, otherwise there will be an error. Just as a note, there is a possibility to not cut out the reinforcements for the matrix and have some extra area, so the meshing is easier. But this should only be used if the area of the reinforcements are neglectable compared to the matrix area. In general SECTION is used to define meshed fibres and FIBRE is used to define not meshed / parametric fibres. The paramters are for example the location and the diameter of the fibre.

In each step the orientation of the cross-section is important to specify. For AFFE_CARA_ELEM see the note given above. For DEFI_GEOM_FIBRE the local y-axis corresponds to the geometry x-axis. Here to specify the local y-axis to the geometry y-axis we can rotate the ’geometry’ for all fibre parts inside DEFI_GEOM_FIBRE with ANGLE -90°. It is important that the orientation of AFFE_CARA_ELEM and DEFI_GEOM_FIBRE correspond to each other.

AsterStudy - Model Definition - DEFI_GEOM_FIBRE

  • SECTION

    • TOUT_SECT: Yes (OUI) - the whole section given with MAILLAGE_SECT

    • GROUP_FIBRE - the name for the fibre group, e.g. concf for concrete fibre

    • MAILLAGE_SECT

    • COOR_AXE_POUTRE - location of the axes, the reference

      • [0]: 0

      • [1]: 0

    • ANGLE - 0° gemetry x-axis corresponds to the local y-axis, -90° if gemetry y-axis sould correspond the local y-axis.

  • FIBRE

    • GROUP_FIBRE - the name for the fibre group, e.g. rf for reinforcement fibres

    • Value (VALE) - each reinforment needs three parameters, x location, y location and the gemetrical parameter like diameter, the type isspecified with CARA.

      • [0] - x location, e.g. 0.1

      • [1] - y loaction, e.g. 0.2

      • [2] - geometrical parameter like diameter, e.g. 0.032

    • COOR_AXE_POUTRE - location of the axes, the reference

      • [0]: 0

      • [1]: 0

    • CARA - how to specify the geometrical parameter for the reinforcements

      • DIAMETRE

      • SURFACE

    • ANGLE - 0° given x-axis value corresponds to the local y-axis, -90° if given y-axis value sould correspond the local y-axis.

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • POUTRE (beam)

    • Group of element (GROUP_MA) - the group of elements where the section should be applied to.

    • SECTION: RECTANGLE - for example

      • CARA:

        • HY - height, along local y-axis

        • HZ - width, along local z-axis

      • Value (VALE) - the corresponding values for the parameters

  • MULTIFIBRE

    • Group of element (GROUP_MA)

    • GROUP_FIBRE - link to all fibre names, e.g. concf and rf.

    • PREC_AIRE (precision in area) - value given as ratio (regarding the POUTRE - SECTION), in case of extra area (no cut outs) increase the value. Or if the mesh is too corse refine the mesh or increase the value.

    • PREC_INERTIE (precision in inertia) - same as above for moment of inertia.

  • Model (MODELE) - link to the model

  • ORIENTATION

    • CARA: VECT_Y (local coordinate y)

    • Value (VALE) - set the orientation of the local coordinate y direction regarding the global coordinate system x, y, z.

    • Group of element (GROUP_MA) - the group of elements where the orientation should be applied to

  • GEOM_FIBRE - link to the fibre definition.

Define all materials.

AsterStudy - Other (Show All) - DEFI_COMPOR - define behavior

  • MULTIFIBRE - define all fibres, e.g. concf concrete and rf reinforcement fibre

    • [0]

      • GROUP_FIBRE - set the name of the fibre, e.g. concf

      • Material (MATER) - link to the material definition

      • RELATION: Elastic (ELAS) - or MAZARS, …

    • [1] for example for the reinforcement and other fibres (e.g. steel RELATOIN: ELAS or VMIS_CINE_GC, …)

  • GEOM_FIBRE - link to the fibre definition

  • MATER_SECT - link the material for the SECTION the general matrix, e.g. concrete

AsterStudy - Material - Assign a material (AFFE_MATERIAU )

  • Model (MODELE) - link to the modal

  • Material assignment (AFFE)

    • Group of element (GROUP_MA) - link to the group of elements where the material should be applied to.

    • Material (MATER)

      • [0] link to one of the cross-section material, e.g. the concrete

      • [1] link to the other cross-section material, e.g. the reinforcement, steel

  • Behavior assignment (AFFE_COMPOR)

    • Group of element (GROUP_MA) - link to the group of elements where the material should be applied to.

    • Behavior (COMPOR) - link to the behavior definition

4.4 Plate, Shell and Membrane

See also Note of use of the elements plates, shells, grids and membranes. Further also Elements of plate: modelings DKT, DST, DKTG and Q4G, Elements of plate: Modeling Q4GG, Finite elements of voluminal shells (COQUE_3D), Digital modeling of the mean structures: axisymmetric thermoelastoplastic shells (COQUE_AXIS), Voluminal elements of hulls into nonlinear geometrical (COQUE_3D), Elements MEMBRANE and GRILLE_MEMBRANE. DKTG and Q4GG uses the model of GLRC_DAMAGE and GLRC_DM .

General rule for plate and shell structures; a characterisitc thickness to length relation of

  • much lower than 1/10 is a thin plates/shell

  • about 1/10 is a thick plates/shell; Q4GG

  • note for < 1/500; not recommended bc/ of problems of digital locking which will underestimate displacemenets and will thus give false results

Geometrical characteristics

  • plates; plane, not curved, needs many elements to follow curved geometry

    • elements DKT and DKTG (Discrete Kichhoff) (including quandrangluar elements) are based on the theory of Hencky-Coils-Kirchhoff, i.e. without transverse shearing

    • elements DST and Q4G (Discrete Shear) are based on the theory of Reissner, i.e. with transverse shearing. Q4G uses a different interpolation for the transverse shearing.

  • shells; curved

  • membrane, no rotational dofs, no eccentricity.

Model type

geometry

element

geometrical

type

type

plates

not curved

DKT

TRIA3

DKT

linear and non-linear

w/o shear

QUAD4

DKQ

DKTG

TRIA3

DKTG

linear and non-linear

w/o shear

QUAD4

DKQG

DST

TRIA3

DST

linear

w shear

QUAD4

DSQ

Q4G

QUAD4

Q4G

linear

w shear

Q4GG

TRIA3

T3G

linear

thick plate

QUAD4

Q4G

shells

curved

COQUE_3D

TRIA7

linear and non-linear

QUAD9

linear and non-linear

COQUE_AXIS

SEG3

linear, revolution axis 0Y

membrane

MEMBRANE

TRIA3

QUAD4

TRIA6

QUAD8

TRIA7

QUAD9

GRILLE_EXCENTRE

TRIA3

linear

QUAD4

GRILLE_MEMBRANE

TRIA3

QUAD4

TRIA6

QUAD8

4.4.1 Add centre node for full quadratic elements, especially for COQUE_3D

Needed for COQUE_3D: Full quadratic mesh for calculation and quadratic mesh without centre node for visualization in ParaViS.

AsterStudy - Mesh - CREA_MAILLAGE

  • MODI_MAILLE

    • Exacly One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Option (OPTION)

      • QUAD8_9 - transformation of the quadrangles with eight nodes into quadrangles with nine nodes

      • TRIA6_7 - transformation of the triangles with six nodes into triangles with seven nodes

  • Mesh (MAILLAGE) - link to the quadratic mesh without centre node (LIRE_MAILLAGE)

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE): Mechanic (MECANIQUE)

    • Modelisation (MODELISATION):

      • COQUE_3D - shell

  • Mesh (MAILLAGE) - link to the modified mesh with centre node

Assign additional model as general 3D to map results to unmodified mesh for correct visualisation in ParaViS.

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE): Mechanic (MECANIQUE)

    • Modelisation (MODELISATION):

      • 3D - solid (also if we used COQUE_3D)

  • Mesh (MAILLAGE)

After assigning the analysis see Map results to other mesh.

4.4.2 Define shell thickness

AsterStudy - Model Definition - AFFE_CARA_ELEM

  • COQUE (shell)

    • Group of element (GROUP_MA)

    • EPAIS (thickness)

  • Model (MODELE)

4.5 Crack XFEM

Define the interface for crack (XFEM) elements. As an example a circle with radius r at the origin. The mesh is cutted / sliced along the circle.

AsterStudy - Fracture and Fatigue - DEFI_FISS_XFEM

  • Mesh (MAILLAGE) - link to the current (last iterated) mesh

  • TYPE_DISCONTINUITE: INTERFACE

  • DEFI_FISS

    • FORM_FISS: ELLIPSE

    • DEMI_GRAND_AXE - define the semi-major axis, for a circle the radius

    • DEMI_PETIT_AXE - define the semi-major axis, for a circle the radius

    • CENTRE - define the center position, e.g. 0., 0., 0.

    • VECT_X - define the direction of one axis, e.g. 1., 0., 0.

    • VECT_Y - define the direction of the other axis, e.g. 0., 1., 0.

Modify the FE-model by adding XFEM elements at the interface.

AsterStudy - Fracture and Fatigue - MODI_MODELE_XFEM

  • MODELE_IN - link to the model

  • FISSURE - link to the X-FEM interface (DEFI_FISS_XFEM)

IMPORTANT to be able to save the X-FEM results into the MED format, the following steps are necessary. Also; along the crack are all node duplicated, one for each of the both sides.

Create a new mesh with interface for post-processing

AsterStudy - Fracture and Fatigue - POST_MAIL_XFEM

  • Model (MODELE) - link to the XFEM modified model (MODI_MODELE_XFEM)

Create a visualization model

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE) - same as before

    • Modelisation (MODELISATION) - same as before

  • Mesh (MAILLAGE) - link to the XFEM mesh (POST_MAIL_XFEM)

Add X-FEM fields that can be viewed in the post-processor

AsterStudy - Fracture and Fatigue - POST_CHAM_XFEM

  • MODELE_VISU - link to the visualization model (AFFE_MODELE of POST_MAIL_XFEM)

  • RESULTAT - link to the result file (e.g. MECA_STATIQUE)

Optionally add/extend other field data calculations (see CALC_CHAMP).

Write the result

AsterStudy - Output - Set output results (IMPR_RESU-MED )

  • Result file location (UNITE) - define the location and the filename of the .rmed-file. Can be the same, then it will be appended.

  • Format (FORMAT): MED

  • Results (RESU)

    • Result (RESULTAT) - link to visualization X-FEM field (POST_CHAM_XFEM)

5 Describing auxiliary types

5.1 1D function LIRE_FONCTION, DEFI_FONCTION and CALC_FONC_INTERP

Discrete values, interpolated either linear or logarithmic. (Faster than FORMULE when using low-level Fortran, e.g. as in the behavior law)

usage as

  • boundary conditions or loads, e.g. AFFE_CHAR_MECA_F

  • behavior law, e.g. traction curve for elastoplastic, law depending on temperature

  • multiplicative function for boundary conditions or loads, e.g. defining static load f AFFE_CHAR_MECA, defining a time dependent multiplication function g(t) DEFI_FONCTION and using both in the analysis STAT_NON_LINE via EXCIT: CHARGE as f and FONC_MULT as g(t).

AsterStudy - Function and Load - DEFI_FONCTION

  • Parameter name (NOM_PARA) - code_aster parameter (not a custom user parameter)

    • ABSC_CURV - curvilinear abscissa

    • DX - displacement along X

    • DY - displacement along Y

    • DY - displacement along Z

    • DRX - rotation around X

    • DRY - rotation around Y

    • DRZ - rotation around Z

    • EPSI - strain

    • INST - time

    • SIGM - stress

    • TEMP - temperature

    • X - coordinate X

    • Y - coordinate Y

    • Z - coordinate Z

  • Exactly One

    • Coordinates (VALE) - pairs of abscissa values xi and function values yi. abscissa values are stricly increasing (x0 < x1 < x2 < … < xn). e.g.:

      • 0, 100

      • 10, 0

    • List of X-coordinate (VALE_PARA) - link to an array of abscissa values DEFI_LIST_REEL. function values see VALE_FONC.

      • List of Y-coordinate (VALE_FONC) - link to an array of function values DEFI_LIST_REEL, together with VALE_PARA to define corresponding abscissa values.

    • X-coordinate (ABSCISSE) - abscissa values, function values see ORDONNEE.

      • Y-coordinate (ORDONNEE) - function values, together with ABSCISSE to define corresponding abscissa values.

  • Left extension (PROL_GAUCHE) - extension on the left

    • EXCLU - no extension, default

    • CONSTANT - extension by end value

    • LINEAR - extension by linear extrapolation

  • Right extension (PROL_DROITE) - extension on the right

    • EXCLU - no extension, default

    • CONSTANT - extension by end value

    • LINEAR - extension by linear extrapolation

  • Interpolations (INTERPOL) - interpolation between points

    • LIN - linear interpolation, default

    • LOG - logarithmic interpolation

AsterStudy - Function and Load - LIRE_FONCTION

  • Filename (UNITE)

  • Parameter name (NOM_PARA)

Transform a FOMULE (or FONCTION) into a FONCTION

AsterStudy - Function and Load - CALC_FONC_INTERP

  • FONCTION - link to the FOMRULE or FONCTION

  • LIST_PARA - link to the list of abscissa values, e.g. DEFI_LIST_REEL

5.2 2D function DEFI_NAPPE

Discrete values depending on two parameters, interpolated either linear or logarithmic.

5.3 nD formula FORMULE

continuum values. (Slower than FONCTION when using low-level Fortran, e.g. as in the behavior law. But more precise, values are just calculated)

AsterStudy - Function and Lists - FORMULE

  • Name - for example facef

  • Value (VALE) - specify code_aster parameter (e.g. X), function (e.g. from another FORMULE; myformule(X)) and to python math functions (e.g. sin(X), cos(X), sqrt(X), …) or custom python function (e.g. mypyfunc(X,Y))

  • Parameter name (NOM_PARA) - specify one or more parameter, either code_aster parameter (e.g. X) or custom parameter (e.g. a python variable mypara=30.)

    • X

    • Y

6 Material

See also Anisotropic elasticity.

Integrade material by external software see Nonlinear behaviors section “Behaviors integrated by an external software”; i.e. UMAT Note of use of the coupling enters Code_Aster and modulates it laws of behavior UMAT and MFRONT Note of use of MFront with code_aster.

6.1 Import material INCLUDE_MATERIAU

For example; add a preceding Stage and define material there. Import an existing .comm file with defined materials only. Or define material files and include those files.

Define own material. The function coef_unit(N) is used to manage the change of units. The return value will be 1 if the material is included with UNITE_LONGUEUR using M and it will return 1eN if using MM instead. Variabels are prefixed with an underscore to prevent a conflict with aster internal macro variables. [2]

# Material stainless steel
# - UNITS (N,kg,s,m,K) if using UNITE_LONGUEUR: M
# - UNITS (N,t,s,mm,K) if using UNITE_LONGUEUR: MM
# Young's modulus, Pa or MPa
_E = 2.1e11 * coef_unit(-6)
# Poisson ratio
_NU = 0.3
# Density, kg/m^3 or t/mm^3
_RHO = 7800 * coef_unit(-12)
# Alpha; coefficient of linear (length) thermal expansion, 1/K
_ALPHA = 12e-6
# Define the material properties and assigns the above variables
motscles = defi_motscles(
  ELAS=_F(E=_E,
          NU=_NU,
          RHO=_RHO,
          ALPHA=_ALPHA,),)

AsterStudy - Material - INCLUDE_MATERIAU

  • Name - define a name for the material to use in the case file

  • FICHIER - the file name with path of the material file, e.g. /home/[user]/salome_meca/materials/STEEL

  • UNITE_LONGUEUR -

    • M - default, include values with m (e.g. N,kg,s,m,K)

    • MM - include values with mm (e.g. N,t,s,mm,K)

  • Verbosity (INFO) - set to 2 to get information about the included material in the message output (e.g. {'ELAS': {'ALPHA': 2e-05, 'E': 2760.0, 'NU': 0.34, 'RHO': 1.42e-09}})

6.2 Define mechanic material

6.2.1 Linear isotropic elasticity ELAS

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • Linear isotropic elasticity (ELAS)

    • Young’s modulus (E)

    • Poisson’s ratio (NU)

    • Density (RHO) - optionally for volume forces

    • Thermal expansion coefficient (ALPHA) - linear (length), optionally for thermo mechanical analysis

6.2.2 Linear transverse isotropic elasticity ELAS_ISTR
6.2.3 Linear orthotropic elasticity ELAS_ORTH
6.2.4 Linear elasticity of the elements of plates DKTG and Q4GG

ELAS_GLRC

6.2.5 Nonlinear Materials

Requirements

See also Nonlinear behaviors

6.2.5.1 Elastopasticity of Von Mises TRACTION

see also Integration of the relations of behavior elastoplastic of Von Mises

Requirements see also the notes below for TRACTION / SIGM.

Either use a ASCII file with \(\epsilon\)-\(\sigma\) pairs each line and read it as a \(\sigma(\epsilon)\) function with LIRE_FONCTION

AsterStudy - Functions and Lists - LIRE_FONCTION

  • Filename (UNITE) - link to the \(\sigma\)-\(\epsilon\) curve file.

  • Parameter name (NOM_PARA): EPSI

  • Right extension (PROL_DROITE): CONSTANT

or create a \(\sigma(\epsilon)\) function with DEFI_FONCTION

AsterStudy - Functions and Lists - Define function (DEFI_FONCTION )

  • Coordinates (VALE), e.g. (polyimide foil material)

    Function

    0.03

    82.8

    0.1

    117.2

    0.2

    158.8

    0.3

    172.4

    0.4

    186.2

    0.5

    193.1

  • Parameter name (NOM_PARA): EPSI

  • ☑ Interpolations (INTERPOL): LIN

  • ☑ Right extension (PROL_DROITE): CONSTANT

Material

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • Linear isotropic elasticity (ELAS) - Definition of the elastic Young’s modulus until the yield stress of the material, should be the same as the fist \(\epsilon\)-\(\sigma\) pair. E.g. \(E=2e5\) for first point \(\epsilon=1e{-3}\) and \(\sigma=200\).

    • Young’s modulus (E)

    • Poisson’s ratio (NU)

  • TRACTION - Definition of a traction diagram (elastoplasticity of von Mises with nonlinear isotropic work hardening or nonlinear elasticity).

    • SIGM - Curve \(\sigma\) according to the total deflection \(\epsilon\) (parameter EPSI). The ordinate of the first point defines the yield stress of material, it is thus imperative not to define of point of worthless X-coordinate [R5.03.02]. E.g. first point \(\epsilon=1e{-3}\) and \(\sigma=200\) for \(E=2e5\).

See analysis settings below 8.2.2.2 Non-linear Material - Elastoplasticity of von Mises.

6.2.5.2 Hyper elasticity ELAS_HYPER

Isotropic hyperelastic behaviour. Great Displacements and great rotations, but small deformations GROT_GDEP (elements D_PLAN, C_PLAN, AXIS, 3D).

Characteristics of very-rubber bands of type Signorini (see also Law of behavior very-rubber band: almos incompressible material and Relation of nonlinear elastic behavior in great displacements). Second Piola-Kirchhoff stress tensor \(\tensor{S}\) are connected to the Hencky-Von Mises potential \(\Psi\) and the deformations of Green-Lagrange stain tensor \(\tensor{E}\)

\[\tensor{S} = \frac{\partial\Psi}{\partial \tensor{E}}\]

with

\[\Psi = C_{10}(I_1 - 3) + C_{01}(I_2 - 3) + C_{20}(I_1 - 3)^2 + \frac{1}{2}K(J - 1)^2\]

and

\[I_1 = I_1^C J^{-\frac{2}{3}} ,~~ I_2 = I_2^C J^{-\frac{4}{3}} , ~~ J = {I_3^C}^{\frac{1}{2}}\]

where \(I_1^C\), \(I_2^C\) and \(I_3^C\) are the 3 invariants of the right Cauchy-Green tensor \(\tensor{C}\).

Right Cauchy-Green deformation tensor (Green’s deformation tensor)

\[\tensor{C} := \tensor{F}^\T \tensor{F}\]

Invariants of the right Cauchy-Green tensor

\[\begin{split}\begin{aligned} I_1^C &:= {\text{tr}}(\mathbf {C}) = C_{II} = \lambda_1^2 + \lambda_2^2 + \lambda_3^2 \\ I_2^C &:= {\tfrac{1}{2}}\left[({\text{tr}}~\mathbf{C})^{2} - {\text{tr}}(\mathbf{C}^{2})\right] = {\tfrac{1}{2}}\left[(C_{JJ})^{2}-C_{IK}C_{KI}\right] = \lambda_1^2\lambda_2^2 + \lambda_2^2\lambda_3^2 + \lambda_3^2\lambda_1^2 \\ I_3^C &:= \det(\mathbf{C}) = J^2 = \lambda_1^2\lambda_2^2\lambda_3^2 \end{aligned}\end{split}\]

where \(J:=\det{\tensor{F}}\) and \(\lambda_i\) strech ratios for the unit fibers, initially oriented along eigenvector directions of the right (reference) strech tensor.

Deformations Green-Lagrange stain tensor

\[\tensor{E} := \frac{1}{2}(\tensor{F}^\T \tensor{F} - \tensor{1}) = \frac{1}{2}(\tensor{C} - \tensor{1}) = \frac{1}{2}(\tensor{H} + \tensor{H}^\T + \tensor{H}^\T\tensor{H})\]

Deformation gradient tensor (two-point tensor)

\[\tensor{F} := \frac{\dif\tensor{x}}{\dif\tensor{X}} = \frac{\dif}{\dif\tensor{X}}(\tensor{u} + \tensor{X}) = \mathrm{GRAD}({\tensor{u}}) + \tensor{1} = \tensor{\nabla_{\!X}}\tensor{u} + \tensor{1} = \tensor{H} + \tensor{1}\]
  • \(\tensor{1}\) identity tensor

  • \(\mathrm{GRAD}=\tensor{\nabla_{\!X}}\) material derivative

  • \(\tensor{x}\) spatial coordinates, current configuration (Eulerian description)

  • \(\tensor{X}\) material coordinates, reference configuration (Lagrangian description)

  • \(\tensor{u}=\tensor{U}\) displacement vector (Lagrangian description / Eulerian description)

  • \(\tensor{H}=\mathrm{GRAD}(\tensor{u})=\tensor{\nabla_{\!X}}\tensor{u}\) material displacement gradient tensor

Second Piola-Kirchhoff stress tensor

\[\tensor{S} = J \tensor{F}^{-1} \tensor{\sigma} \tensor{F}^{\T-1}\]

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • ELAS_HYPER

    • C10 - coefficient of the polynomial expression of the hyperelastic potential (unit N/m²)

    • C01 - coefficient of the polynomial expression of the hyperelastic potential (unit N/m²)

    • C20 - coefficient of the polynomial expression of the hyperelastic potential (unit N/m²)

    • exacly one

      • NU - \(\nu\) Poisson’s ratio (\(-1<\nu<0.5\))

      • K - compression/bulk modulus

    • RHO - density

  • if C01 and C20 are Zero, then the material behaviour leads to a neo-Hookean type

  • if only C20 is Zero, then the material beviour leads to a Mooney-Rivlin type

  • the material is elastic incompressible in small deformations if C10 and C01 conforms \(6(C_{10}+C_{01})=E\), where \(E\) is the Young’s modulus

  • the fact of almost-compressible holds the relation to convert K and NU into each other; \(K=\frac{6(C_{10}+C_{01})}{3(1-2\nu)}\).

Example analysis setup AsterStudy - Analysis STAT_NON_LINE

  • Storing (ARCHIVAGE) - e.g. link to list (DEFI_LIST_REEL)

  • Structural element characteristic (CARA_ELEM) - link to element characteristics if using structural elements

  • Material field (CHAM_MATER) - link to the material

  • COMPORTEMENT (behavior)

    • DEFORMATION: GROT_GDEP

    • Group of element (GROUP_MA) - define the group of elements

    • RELATION: ELAS_HYPER - elastic behavior

  • Loads (EXCIT) - link to static (CHARGE) and dynamic (CHARGE + FONC_MULT) boundary conditions

  • Timestepping (INCREMENT) - link to time stepping list (DEFI_LIST_INST), e.g. times

  • Model (MODELE) - link to the model

  • NEWTON

    • REAC_ITER: 1 - recompute matrix every 1 Newton’s iteration

  • Solver (SOLVEUR)

    • METHODE: MUMPS - default solver

    • RENUM: PORD

6.2.6 Dynamic properties

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • Linear isotropic elasticity (ELAS)

    • Young’s modulus (E)

    • Poisson’s ratio (NU)

    • Density (RHO)

    • Rayleigh’s damping: \([C] = \alpha[K] + \beta[M]\)

      • Stiffness damping (AMOR_ALPHA): \(\alpha\)

      • Mass damping (AMOR_BETA): \(\beta\)

    • Structural (hysteretic) damping: \([K_d] = (1 + i\eta)[K]\)

      • Hysteretic damping (AMOR_HYST): \(\eta\)

Modal damping: \(\eta_1\) for mode 1, \(\eta_2\) for mode 2, …, \(\eta_m\) for mode m, if there are less \(\eta\) specified than modes calulated then the last given \(\eta\) is used for all remaining modes. Modal damping can be applied inside Pre Analysis COMB_MATR_ASSE or directly in Analysis DYNA_VIBRA. See below Analysis - Linear dynamic analysis - Harmonic analysis in modal coordinate system - COMB_MATR_ASSE. See also Note of modeling of damping mechanics and Modeling of damping in dynamics linear.

6.3 Define thermic material

6.3.1 Linear isotropic heat conduction THER

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • Isotropic heat condution (THER)

    • Thermal conductivity (LAMBDA) - \(\lambda\)

    • Volumetric heat capacity (RHO_CP23) -\(\rho C_p\)

6.3.2 Linear orthotropic heat conduction THER_ORTH

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • THER_ORTH

    • LAMBDA_L

    • LAMBDA_T

    • LAMBDA_N

    • Volumetric heat capacity (RHO_CP23) - \(\rho C_p\)

6.3.3 Non-linear heat conduction THER_NL

AsterStudy - Material - Define a material (DEFI_MATERIAU )

  • THER_NL

    • Exacly One

      • BETA - Voluminal enthalpy \(\beta(T)\)

      • Volumetric heat capacity (RHO_CP23) - \(\rho C_p(T)\)

    • Thermal conductivity (LAMBDA) - \(\lambda(T)\)

6.4 Assign material

After defining or including the material (see above) one need to assign the material.

AsterStudy - Material - Assign a material (AFFE_MATERIAU )

  • Model (MODELE): link to the model, see Model - Element Type.

  • Material assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Material (MATER): link to the defined material

Notes to thermo mechanical analysis

AsterStudy - Material - Assign a material (AFFE_MATERIAU )

  • Model (MODELE): link to the model, see Model - Element Type.

  • Material assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Material (MATER): link to the defined material

  • External state variable assignment (AFFE_VARC)

    • External state variable (NOM_VARC): Termperature (TEMP)

    • Reference value (VALE_REF) - 293.15 (20 degree Celsius)

    • Everywhere (TOUT): Yes (OUI)

    • Transient value (EVOL) - link to the thermic analysis

    • Field name (NOM_CHAM): Temperature (TEMP)

    • Right extension (PROL_DROITE): LINEAIRE

    • Left extension (PROL_GAUCHE): LINEAIRE

7 Boundary Conditions and Loads

In the case axisymmetric, the forces required are brought back to a sector of 1 radian (to divide the real loading by 2 π). Following loadings are activated in non-linear solver (STAT_NON_LINE and DYNA_NON_LINE) with option TYPE_CHARGE inside EXCIT. Rules of overload and remanence: The assignments are done by superimposing the effects of the various loadings. And, in the event of conflict, the last loading overrides the precedents.

7.1 Define a 1D load function - distributed line load

see also 5.1 1D function LIRE_FONCTION, DEFI_FONCTION and CALC_FONC_INTERP.

Example usage:

AsterStudy - Function and Load - DEFI_FONCTION

  • NOM_PARA: Y

  • VALE

    • 0, 100

    • 10, 0

AsterStudy - BC and Load - AFFE_CHAR_MECA_F

  • PRES_REP

    • Group of element (GROUP_MA) - link to the region where the load should be applied to

    • PRES - link to the function (DEFI_FONCTION)

  • Model (MODELE) - link to the model

7.2 Define a 2D load function - distributed face load FORMULE

Possible python function with two arguments

facepf = lambda x, y: 1 if sqrt(x**2 + y**2) <= 1 else 0

AsterStudy - Function and Lists - FORMULE

  • Name - for example facef

  • Value (VALE) - specify function or link to python function, e.g. ’facepf(X,Y)’

  • Parameter name (NOM_PARA)

    • X

    • Y

Example usage:

AsterStudy - BC and Load - AFFE_CHAR_MECA_F

  • FORCE_COQUE

    • Group of element (GROUP_MA) - link to the region where the load should be applied to

    • FZ - link to the function (FORMULE), e.g. facef

  • Model (MODELE) - link to the model

7.3 Mechanic

7.3.1 Coupled DOFs LIAISON_DDL

Connect single dofs together, i.e. a single linear relation: \(\sum_{i=1}^r \alpha_i U_i = \beta\), where \(\alpha_i\) dof coefficient, \(U_i\) dof and \(\beta\) common coefficient.

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA , AFFE_CHAR_MECA_F )

  • LIAISON_DDL

    • Group of node (GROUP_NO) - list of single node groups (i.e. a group cannot be a group of multiple nodes)

    • DDL - list of dofs \(U_i\)

    • COEF_MULT - list of dof coefficients \(\alpha_i\)

    • COEF_MULT_FONC (only for AFFE_CHAR_MECA_F) - list of dof coefficients functions \(\alpha_i\). Function can depend on initial geometry.

    • COEF_IMPO - common coefficient \(\beta\). In case of AFFE_CHAR_MECA_F the coefficient function can depend on initial geometry and time.

Example: Impose \(U_x=U_y\) of node N1, with node group GN1. The linear relation would be \(1 \cdot U_x - 1 \cdot U_y = 0\).

  • LIAISON_DDL

    • GROUP_NO: GN1, GN1

    • DDL: DX, DY

    • COEF_MULT: 1, -1

    • COEF_IMPO: 0

7.3.2 Support and displacement DDL_IMPO

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • Enforce DOF (DDL_IMPO)

    • Group of element (GROUP_MA)

    • LIAISON: ENCASTRE - fix (arrest) all dofs

    • DX, DY, DZ, DRX, DRY, DRZ

  • FACE_IMPO - face condition, also quasi-face condition like edges of surfaces (C_PLAN) and axisymmetric rotary edge of surface (AXIS)

    • Group of element (GROUP_MA)

    • DX, DY, DZ, DRX, DRY, DRZ

  • Model (MODELE)

7.3.3 Rotation ROTATION

Apply a field of force that is equivalent to the centrifugal force applying to a structure in rotation. The loading is defined as

\[\tensorI{f} = \rho (\tensorI\omega \wedge \tensorI{O} \, \tensorI{M}) \wedge \tensorI\omega\]

where \(\tensorI{O}\) is the origin of the corrdinates and \(\tensorI{M}\) a point running of the structure with \(\rho\) definite density of the material. \(\tensorI\omega\) is the number of revolution about the axis of rotation (a_r, b_r, c_r)

\[\tensorI\omega = \omega \frac{a_r \tensorI{i} + b_r \tensorI{j} + c_r \tensorI{k}}{\sqrt{a_r^2 + b_r^2 + c_r^2}}\]

Note for a time vary multiplier function; the load is proportional to the square number of revolutions \(\omega^2 = \omega_0 f(t)^2\) and so the time vary multiplier function.

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • Rotation (ROTATION) - (POU_D_EM, AXIS, C_PLAN, D_PLAN, COQUE_3D, 3D). Possible error messages with option CHAR_MECA_ROTA_R.

    • Celerity (VITESSE) (angular velocity &omega;) - number of revolutions omega

    • AXE (axis) - axis of rotation a_r, b_r, c_r. For plane modelings, the axis of rotation must be in Oz direction. For axisymmetric modelings and Fourier, it must be in the Oy direction.

    • Group of element (GROUP_MA)

    • Exlude group of element (SANS_GROUP_MA)

    • CENTRE - default the origin. For a defect specify x, y, z. For axisymmetric modelings and Fourier, the centre must be the origin.

  • Model (MODELE)

7.3.4 Force (point and line) FORCE_NODALE, FORCE_ARETE

Also for e.g. dynamic force excitation.

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_NODALE - force on node Possible error messages with option CHAR_MECA_FORC_R, CHAR_MECA_FORC_F.

    • Group of node (GROUP_NO)

    • FX, FY, FZ, MX, MY, MZ - define the factor and the direction for the load (table).

  • FORCE_ARETE (arête edge) - line load, i.e. load per length (DKT, DST , Q4G, COQUE_3D, 3D). Possible error messages with option CHAR_MECA_FR1D3D.

    • Group of element (GROUP_MA)

    • FX, FY, FZ, MX, MY, MZ - define the factor and the direction for the load (table).

  • Model (MODELE)

7.3.5 Surface force (pressure)
7.3.5.1 Normal pressure PRES_REP

Requirements - orient bounding (edge, face) normals coherently towards the outside

  • AsterStudy - Mesh - Modify a Mesh (MODI_MAILLAGE )

    • Name - set same name like the ’Read a Mash (LIRE_MAILLAGE)’ command, to modify the mesh.

    • ORIE_PEAU (formerly ORIE_PEAU_2D / ORIE_PEAU_3D) (orientated skin) - Reorientate meshes of edge so that their normals are coherent (towards the outside of the matter). It is an essential precondition if, for example, one wants to apply a loading of pressure to this “skin”.

      • GROUP_MA_PEAU (formerly GROUP_MA) - the edge / face where the pressure should be applied to

      • GROUP_MA_INTERNE (formerly GROUP_MA_SURF / GROUP_MA_VOLU) - [optinal] the matter / the reference. If the edge / face is inside or between two surfaces / solids.

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • PRES_REP - (AXIS, C_PLAN, D_PLAN, DKT, DST, Q4G, DKTG, Q4GG, COQUE_3D, MEMBRANE, 3D, SHB). Possible error messages with option CHAR_MECA_PRES_R, CHAR_MECA_PRES_F.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • PRES

  • Model (MODELE)

7.3.5.2 Directional pressure FORCE_FACE

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_FACE - pressure (3D, 3D_HHM, 3D_HM, 3D_THHM, 3D_THM, 3D_HH2, 3D_THH2M, XFEM). Possible error messages with option CHAR_MECA_FR2D3D, CHAR_MECA_FF2D3D.

    • Group of element (GROUP_MA)

    • FX, FY, FZ - define the factor and the direction for the load (table).

  • Model (MODELE)

7.3.5.3 Pressure for beam model - Distributed line load FORCE_POUTRE

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_POUTRE - uniform distributed load along beam. (BARRE, CABLE, POU_D_E, POU_D_EM, POU_D_T, POU_D_T_GD, POU_D_TG, POU_D_TGM, TUYAU_3M, TUYAU_6M). Possible error messages with option CHAR_MECA_FR1D1D, CHAR_MECA_FC1D1D, CHAR_MECA_FF1D1D.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • At Least One

      • FX, FY, FZ, MX, MY, MZ

    • Load type (TYPE_CHARGE)

      • FORCE (default)

      • VENT (wind)

  • Model (MODELE)

Example

Pressure \(p\) along the beam, with length \(L\) and width \(b\) and therefore an area \(A\) of \(b\,L\). The integated force

\[F = p \, A = p \, b \, L\]

The distributed line load

\[q = F/L = p \, b\]
7.3.5.4 Pressure in pipe - internal pressure FORCE_TUYAU

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_TUYAU - uniform distributed load along beam. (TUYAU_3M, TUYAU_6M). Possible error messages with option CHAR_MECA_PRES_R, CHAR_MECA_PRES_F.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • PRES - internal pressure

  • Model (MODELE)

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • EFFE_FOND - internal pressure (3D). Possible error messages with option CHAR_MECA_EFON_R, CHAR_MECA_EFON_F.

    • Group of element (GROUP_MA) - the section

    • GROUP_MA_INT - internal contour of the section

    • PRES - internal pressure

  • Model (MODELE)

7.3.5.5 Pressure for 2D plate and axisymmetry FORCE_CONTOUR

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_CONTOUR - surface load (pressure) on a line / edge of a 2d field, i.e. for a plate the load will include the thickness or in case of axisymmetry one radian sector (divided by 2:math:pi). (D_PLAN, AXIS, AXIS_FOURIER, XFEM) (AXIS, C_PLAN, D_PLAN). Possible error messages with option CHAR_MECA_FR1D2D, CHAR_MECA_FF1D2D.

    • Group of element (GROUP_MA)

    • FX, FY, FZ

  • Model (MODELE)

7.3.5.6 Pressure for plate and shell model FORCE_COQUE

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_COQUE - surface load, i.e. load per square length (DKT, DST, Q4G, DKTG, Q4GG, COQUE_3D). Possible error messages with option CHAR_MECA_FRCO2D, CHAR_MECA_FRCO3D, CHAR_MECA_FFCO2D, CHAR_MECA_FFCO3D.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • At Least One

      • FX, FY, FZ, MX, MY, MZ, F1, F2, F3, MF1, MF2, PRES

  • Model (MODELE)

7.3.6 Voluminal force FORCE_INTERNE

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • FORCE_INTERNE - voluminal force. (3D: 3D, 3D_SI, 3D_INCO, 3D_HHMD, 3D_HMD, 3D_THHD, 3D_THHMD, 3D_THMD, 3D_THHM, 3D_THM, 3D_HM, 3D_THH, 3D_HHM; 2D: C_PLAN, D_PLAN, AXIS, AXIS_FOURIER, AXIS_SI, AXIS_INCO, AXIS_THHM, AXIS_HM, AXIS_THH, AXIS_HHM, AXIS_THM, D_PLAN_THHM, D_PLAN_HM, D_PLAN_THH, D_PLAN_HHM, D_PLAN_THM). Possible error messages with option CHAR_MECA_FR2D2D, CHAR_MECA_FR3D3D, CHAR_MECA_FF2D2D, CHAR_MECA_FF3D3D.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • At Least One

      • FX, FY, FZ

  • Model (MODELE)

7.3.7 Gravity PESANTEUR

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • Gravitational acceleration (PESANTEUR) - (2D_DIS_T, 2D_DIS_TR, DIS_T, DIS_TR, BARRE, CABLE, POU_D_E, POU_D_EM, POU_D_T, POU_D_T_GD, POU_D_TG, POU_D_TGM, TUYAU_3M, TUYAU_6M, AXIS, C_PLAN, D_PLAN, DKT, DST, Q4G, DKTG, Q4GG, COQUE_3D, MEMBRANE, 3D, SHB). Possible error messages with option CHAR_MECA_PESA_R.

    • Gravitational constant (GRAVITE) - for example 9.81 if using dimensions in m or 9810 for mm.

    • Direction (DIRECTION) - specify the direction in global xyz coordinate system

    • Group of element (GROUP_MA) - optionally

  • Model (MODELE)

7.3.8 Initial deformation PRE_EPSI

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • PRE_EPSI - (same? EPSI_INIT) (POU_D_E, POU_D_T, POU_D_TG, POU_D_T_GD, AXIS, C_PLAN, D_PLAN, DKT, DST, Q4G, DKTG, Q4GG, MEMBRANE, 3D). Possible error messages with option CHAR_MECA_EPSI_R, CHAR_MECA_EPSI_F.

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • At Least One

      • EPXX, EPYY, EPZZ, EPXY, EPXZ, EPYZ, EPX, KY, KZ, EXX, EYY, EXY, KXX, KXY, KXY

  • Model (MODELE)

7.3.9 INTE_ELEC

CABLE, POU_D_E, POU_D_T, POU_D_T_GD

7.3.10 FORCE_ELEC

POU_D_E, POU_D_T

7.4 Acceleration - Seismic loading

For e.g. base excitation at support.

AsterStudy - Pre Processing - ASSEMBLAGE

  • MATR_ASSE

    • [0]

      • MATRICE: K (choosen name for stiffness matrix)

      • Option (OPTION): RIGI_MECA

    • [1]

      • MATRICE: M (choosen name for mass matrix)

      • Option (OPTION): MASS_MECA

  • Model (MODELE) - link to the model

  • NUME_DDL - Enter new result name, e.g. nddl

  • Material field (CHAM_MATER)

  • Structural element characteristic (CARA_ELEM) - optional for structural elements

  • Load (CHARGE) - link to all boundary conditions

A bug in AsterStudy places the CALC_CHAR_SEISME before the ASSEMBLAGE command and that makes it impossible to link the mass matrix to CALC_CHAR_SEISME. A workaround is to create an additional Case Stage.

AsterStudy - BC and Load - CALC_CHAR_SEISME - needs mass matrix

  • Name - for example accechar

  • MONO_APPUI

    • Yes (OUI) - all supports are excited with the same acceleration.

    • No

  • MATR_MASS - link to the mass matrix

  • Direction (DIRECTION) - direction vector (x, y, z)

For dynamic calculation this definition will be combined / multiplied with a load function, see Time-dependent load.

7.5 Kinematic coupling

Reducing dofs

7.5.1 Support and displacement MECA_IMPO

AsterStudy - BC and Load - AFFE_CHAR_CINE

  • MECA_IMPO

    • Exacly One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

      • Group of node (GROUP_NO)

    • At Least One:

      • DX, DY, DZ, …

  • Model (MODELE)

7.6 Thermic

7.6.1 Temperature TEMP_IMPO

AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )

  • Enforce Temperature (TEMP_IMPO)

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of node (GROUP_NO)

      • Group of element (GROUP_MA)

    • Temperature (TEMP)

  • Model (MODELE)

7.6.2 Heat flux density FLUX_REP

Normal imposed flux: Constant or function of time and space

\[\lambda(T) \frac{dT}{dn} = f(t,x)\]

AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )

  • FLUX_REP

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • FLUN - heat flux density

  • Model (MODELE)

7.6.3 Non-linear normal flux FLUX_NL

Non-linear only

\[\lambda(T) \frac{dT}{dn} = f(T)\]

AsterStudy - BC and Load - Assign variable thermal load (AFFE_CHAR_THER_F )

  • FLUX_NL

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • FLUN - heat flux density

  • Model (MODELE)

7.6.4 Natural convection - Heat transfer (Fourier law) ECHANGE
\[\lambda(T) \frac{dT}{dn} = h(t) \cdot (T\ti{ext} - T)\]

convection W/(m^2 K)

AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )

  • ECHANGE

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • COEF_H - heat transfer coefficient

    • TEMP_EXT - external temperature

  • Model (MODELE)

7.6.5 Heat exchange between walls ECHANGE_PAROI
\[\lambda_1 \frac{dT_1}{dn_1} = h (T_2 - T_1)\]

AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )

  • ECHANGE_PAROI

    • Exacly One

      • GROUP_MA_1

      • FISSURE

    • Exacly One

      • GROUP_MA_2

    • COEF_H - heat transfer coefficient

    • TRAN

  • Model (MODELE)

7.6.6 Heat source SOURCE
\[s(x,t)\]

volumetric power W/m^3

AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )

  • SOURCE

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Exacly One

      • SOUR

      • SOUR_CALCULEE

  • Model (MODELE)

7.6.7 Non-linear transient heat source SOURCE

AsterStudy - BC and Load - Assign variable thermal load (AFFE_CHAR_THER_F )

  • SOURCE

    • At Least One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • SOUR - select defined function

  • Model (MODELE)

7.7 Time-dependent load

Can be used for example for dynamic analysis with force or base excitation. Define own load entry next to other boundary conditions for later assignment. Load functions will be combined and assigned inside the analysis command.

7.7.1 Ramp function DEFI_FONCTION

Define a ramp function to apply the load and link it to the analysis (e.g. STAT_NON_LINE). The load itself can be defined with e.g. AFFE_CHAR_CINE, AFFE_CHAR_MECA.

AsterStudy - Functions and Lists - Define function (DEFI_FONCTION )

  • Coordinates (VALE)

    • e.g. 1st column (Time): 0; Function: 0

    • e.g. 1st column (Time): 1; Function: 1

    • e.g. 1st column (Time): 2; Function: 1

  • Parameter name (NOM_PARA): Time (INST)

  • optional [X] Interpolations (INTERPOL): LIN (or LOG, NON)

  • optional [X] Right extension (PROL_DROITE): CONSTANT (or EXCLU, LINEAIRE)

  • optional [X] Left extension (PROL_GAUCHE): CONSTANT (or EXCLU, LINEAIRE)

7.7.2 Formula function

AsterStudy - Functions and Lists - FORMULE (Formula)

  • Name - specify a name for the function, e.g. loadf (load function).

  • Value (VALE) - specify the function. The time is referenced with INST, e.g. sin(2*pi*50*INST) (\(\sin(\omega t=2\pi ft)\)).

  • Parameter name (NOM_PARA): INST (time)

AsterStudy - Function and Lists - DEFI_LIST_REEL - define time-steps t

  • Name - for example listinst

  • DEBUT - define the starting point, e.g. 0.0.

  • INTERVALLE

    • Exacly One

      • NOMBRE - number of intervals

      • PAS - step size, e.g. 0.01

    • JUSQU_A - end time, e.g. 1.0 or a variable.

AsterStudy - Function and Lists - CALC_FONC_INTERP - define list to specify the load values related to the time-steps to optimize the computing time

  • Name- specify a name for the list, e.g. loadvals (load values)

  • LIST_PARA - link to the time-step list (DEFI_LIST_REEL)

  • FONCTION - link to the function (FORMULE)

  • Interpolation

    • LIN - linear interpolation

    • LOG

    • No

  • Right extension

    • CONSTANT

    • LINEAIRE - linear extrapolation for values upper the specified list range

  • Left extension

    • EXCLU - exclude values, if values lower the specified list does not make sense, e.g. negative time does not make sense.

7.8 Connections

Also for thermal contact use LIAISON_MAIL or ECHANGE_PAROI.

7.8.1 Contact glue LIAISON_MAIL

Requirements

  • For the geometry, the contact area must fit to each other, e.g. for a solid on a bigger plate, the plate needs an imprint of the solid:

    • Geometry - Operation - Partition

      • Objects - the plate

      • Tool Objects - the solid

      • Resulting Type: Face

  • Put contact area of both parts in groups

  • For the mesh, read the mesh compound or all parts of meshes, see Read mesh.

  • either

    • Mesh - create Mesh compound

      • check [X] to create groups

      • uncheck [ ] merge nodes

      and in AsterStudy read compound mesh

    • AsterStudy - Mesh - ASSE_MAILLAGE (assemble the meshes)

      • MAILLAGE_1 - link to the one mesh part

      • MAILLAGE_2 - link to the other mesh part

      • OPERATION

        • COLLAGE (joining, nodes and elements must match to each other)

        • SUPERPOSE (nodes and elements must not match to each other)

Assign the finite element model to both parts, see Model - Element Type

For solid-shell conections

  • AsterStudy - Post Processing - CREA_CHAMP (create field)

    • TYPE_CHAM: NOEU_GEOM_R

    • OPERATION: NORMALE (get face normals)

    • Group of element (GROUP_MA) - link to the face where we need the normal from, e.g. the contact face

    • Model (MODELE) - link to the model

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • LIAISON_MAIL (join mesh / mesh connection / glue)

    • GROUP_MA_MAIT - link to the master element group, solid elements if MASSIF is active, see TYPE_RACCORD

    • GROUP_MA_ESCL - link to the slave element group, the contact surface / area

    • TYPE_RACCORD (slave-master)

      • COQUE (shell-shell, like DKT with COQUE_3D)

      • COQUE_MASSIF (shell-solid)

        • EPAIS - thickness of the area selected with GROUP_MA_ESCL

        • CHAM_NORMALE - link to face normal field (CREA_CHAMP)

      • MASSIF (solid-solid)

      • MASSIF_COQUE (solid-shell)

7.8.2 Contact sliding DEFI_CONTACT

AsterStudy - BC and Load - DEFI_CONTACT - (CABLE, POU_D_E, POU_D_T, POU_D_TG, POU_D_TGM, AXIS, C_PLAN, D_PLAN)

  • Model (MODELE) - link to the model

  • FORMULATION: Continue (CONTINUE)

  • ZONE

    • GROUP_MA_ESCL - link to the slave group of element, the contact surface (3D) / edge (2D), fine mesh, small contact region, great curvature, small stiffness

    • GROUP_MA_MAIT - link to the master group of element, the contact surface (3D) / edge (2D), coarse mesh, large contact region, small curvature, great stiffness (rigit)

    • COULOMB - e.g. 0.1

    • ALGO_CONT: PENALISATION

    • ALGO_FROT: PENALISATION

    • COEF_PENA_CONT: about the material stiffness (1xE)

    • COEF_PENA_FROT: about the material stiffness (1xE)

  • FROTTEMENT (friction):

    • COULOMB - Coulomb friction

    • SANS - fictionless

See also Note of use of the contact in Code_Aster.

7.8.3 Connection of different element types

Node if creating mesh compound, the option ’Merge coincident nodes and elements’ must be unchecked.

7.8.3.1 Solid and beam LIAISON_ELEM

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • LIAISON_ELEM

    • GROUP_MA_1 - link to the contact surface element group of the solid mesh

    • GROUP_NO_2 - link to the contact single node group of the beam mesh

    • OPTION: 3D_POU (3D - Beam)

7.8.4 Rigid body elements - RBE2 LIASON_SOLIDE

For rigid body elements create a group or groups of elements or nodes. All nodes of these groups will be combined with rigid body elements (no deformation of the group/region, ideal stiff).

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • LIASON_SOLIDE

    • Exacly One

      • Group of node (GROUP_NO)

      • Group of element (GROUP_MA)

For example to apply a load on surface, create a group of elements or nodes for the surface (slave region) and also create a group of one single master node, either of the same surface or somewhere else, where the load actually should be applied to. Combine with LIASON_SOLIDE both master and slave group with rigid body elements (if master node is subset of slave group then selecting the salve group only is sufficient) and then assign the load (AFFE_CHAR_MECA) to the master node with e.g. FORCE_NODALE.

If the master node is outside the structure then a 0D element while meshing for the master node is necessary. A node itself has no degrees of freedom, therefor a point element is necessary. Specify element type (AFFE_MODELE) for the master node / point element: 2D_DIS_T, 2D_DIS_TR, DIS_T, DIS_TR. And assign discrete element characteristic (AFFE_CARA_ELEM - DISCRET - CARA) of a null point mass element M_T_D_N or M_TR_D_N to the master node. Null point means to set all values (VALE) for the mass point mass element to zero.

7.8.5 Rigid body element - RBE3 LIAISON_RBE3

For rigid body elements create a group or groups of elements or nodes. All nodes of these groups will be combined with rigid body elements (deformation of the group/region, distributed stiffness, see also Linear relations kinematics of type RBE3).

AsterStudy - BC and Load - Assign mechanical load (AFFE_CHAR_MECA )

  • LIAISON_RBE3

    • GROUP_NO_MAIT - master node group (a single node group)

    • GROUP_NO_ESCL - list of slave nodes groups

    • DDL_MAIT - dofs of the master node

    • DLL_ESCL - dofs list for every slave node group or one entry for all. dofs defined as string delimit with dash (possible entries DX, DY, DZ, DRX, DRY, DRZ).

    • COEF_ESCL - optionally weighting coefficients for every slave node group or one entry for all. For the latter this option needs to be defined.

Example

  • 1

    • master node NO1 defining from dofs DX, DY, DZ, DRX

      • GROUP_NO_MAIT: NO1

      • DDL_MAIT: DX, DY, DZ, DRX

    • slave node NO2 coupling to dofs DX, DY, DZ with weighting coefficient 0.1, slave node NO3 coupling to dofs DX, DY, DZ, DRX with weighting coefficient 0.2, slave node NO4 coupling to dofs DX, DY, DZ, DRX with weighting coefficient 0.3

      • GROUP_NO_ESCL: NO2, NO3, NO4

      • DDL_ESCL: DX-DY-DZ, DX-DY-DZ-DRX, DX-DY-DZ-DRX

      • COEF_ESCL: 0.1, 0.2, 0.3

  • 2

    • master node LOADPOIN defined by DX, DY, DZ

      • GROUP_NO_MAIT: LOADPOIN

      • DDL_MAIT: ('DX', 'DY', 'DZ')

    • some slave nodes LOADFACE coupling DX-DY-DZ

      • GROUP_ESCL: LOADFACE

      • DDL_ESCL: DX-DY-DZ

    • all nodes in the slave group have the same relation (one element)

      • COEF_ESCL: 1.0

8 Analysis

To save the last converged state of a non-linear analysis, wrap the analysis command - e.g. STAT_NON_LINE - with a try-except statement.

8.1 Solver

  • linear solver (SOLVEUR - METHODE)

    • Direct solvers

      • MUMPS (multifrontal massively parallel sparse direct solver)

        • default method

        • external solver

        • slightly broader scope than MULT_FRONT

        • provides access to parallelism

      • MULT_FRONT (multi-frontal)

        • universal solver, very robust

        • not recommended for mixed models of X-FEM, incompressible …

    • Iterative solvers

      • GCPC (preconditioned conjugate gradient)

        • recommended method for thermics

        • useful for well conditioned, large problems

      • PETSC

        • external multi-method solver

        • very fast and robust when associated with pre-conditioner LDLT_SP

        • provides access to parallelism

  • parallelism

    • solver: MUMPS, PETSC

    • code_aster version compiled with MPI

    • define number of processors

8.2 Static analysis

8.2.1 Linear static analysis MECA_STATIQUE
8.2.1.1 Superposition of the effects of each loading

AsterStudy - Analysis - Static mechanical analysis (MECA_STATIQUE )

  • Material field (CHAM_MATER) - link to the material assignment

  • Structural element characteristic (CARA_ELEM) - link to the structural parameters

  • Model (MODELE) - link to the model assignement

  • Loads (EXCIT) - link to all boundary conditions (support and loads)

    • [0]

      • Load (CHARGE) - link to the a boundary condition

8.2.1.2 Distinguishing the effects of each loading

Either with MECA_STATIQUE by defining load steps or with:

AsterStudy - Other - MACRO_ELAS_MULT

8.2.2 Non-linear static analysis STAT_NON_LINE

See also Nonlinear behaviors.

By default the behavior is small displacements, which implies small strains / deformations (DEFORMATION: PETIT (small) Lagrangian description = Eulerian description). The deformations used are the linearized deformations. Node; small strains does not imply small displacements.

non-linear displacements

  • geometrically (exact) non-linear analysis has to be enabled by hand depending on the type of finite element:

    • with isoparametric elements (D_PLAN, C_PLAN and 3D) you can use DEFORMATION='GREEN' to enable large displacements (including large rotations). Note that constitutive law is still written with a small strain hypothesis. Any constitutive law available under COMP_INCR can be used. Under COMP_ELAS, you can use ELAS_VMIS_* and ELAS_HYPER (non-linear elasticity and hyperelasticity).

    • with 3D shell elements (COQUE_3D), the same is enabled when selecting GREEN_GR (with constitutive law ELAS under COMP_ELAS, that is only linear elasticity can be used when dealing with large displacements/rotations).

    • with beam element POU_D_T_GD, you must use GREEN_GR (with constitutive law ELAS_POUTRE_GR under COMP_ELAS, that is only linear elasticity can be used).

    • with bar element CABLE, you must use GREEN (with constitutive law CABLE under COMP_ELAS, that is only linear elasticity can be used).

  • imprecise approaches to take into account large displacements / rotations:

    • for most of the finite elements one can use PETIT_REAC which updates the geometry at each iteration before computing the stiffness matrix, depending on the element it can be really hard to reach convergence (really slow).

    • for POU_D_TGM element (a multi-fiber beam element), one can use DEFORMATION='REAC_GEOM' to help converge when large displacements and large rotations occur.

  • the most complete kinematic and constitutive behavior is through the use of DEFORMATION='SIMO_MIEHE' (for isoparametric elements) which computes accurately the transformation gradient.

constitutive laws

  • COMP_ELAS: linear and non-linear elasticity. History of loading does not impact behavior, stress are related to (strains regarding a reference setup)

    • splitting the load into several parts is theorically not necessary. However the non-linearity is more easily solved when cutting it, that’s why “temporal” discretization is also used as in COMP_INCR (where it is mandatory).

  • COMP_INCR: general constitutive equation (non-linear). History accounts for the constitutive equation. Incremental stresses are related to incremental strains (regarding last equilibrium setup). History is stored through internal variables (at each Gauss points).

Define time stepping (max. time step) list.

AsterStudy - Functions and Lists - DEFI_LIST_REEL

  • Name - for example time or listinst

  • DEBUT - start time, e.g. 0

  • INTERVALLE

    • [0]

      • Exacly One

        • NOMBRE - number of intervals / steps

        • PAS - step size / delta t. for linear elastic it is 1

      • JUSQU_A - end time, for linear elastic it is 1

    • [1] … other time/load steps

  • Title (TITRE): time

Automatic time stepping

AsterStudy - Functions and Lists - DEFI_LIST_INST

  • Name - for example times

  • Method (METHODE): AUTO - automatic step adaption

  • DEFI_LIST

    • Time step list (LIST_INST) - link to list of reals to specify max step size, e.g. time. (DEFI_LIST_REEL)

    • PAS_MINI - specify the step of minimal time, default 1e-12, if dt < PAS_MINI then calculation STOP.

AsterStudy - Analysis - STAT_NON_LINE

  • Name - for example resnonl

  • Model (MODELE) - link to the model

  • Material field (CHAM_MATER) - link to the material

  • Loads (EXCIT)

    • [0]

      • Load (CHARGE) - link to static boundary conditions, e.g. support

    • [1]

      • Load (CHARGE) - link to dynamic boundary conditions, (mormalized) direction

      • Multiplier function (FONC_MULT) - link to the load table, amplitude, see also DEFI_FUNCTION with NOM_PARA: INST

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to time stepping table (DEFI_LIST_REEL) for manual time step size or to the automatic time step function (DEFI_LIST_INST)

  • Structural element characteristic (CARA_ELEM) - link to element characteristics if using structural elements

  • COMPORTEMENT (behavior)

    • All (TOUT): Yes (OUI)

    • Group of element (GROUP_MA) - define the group of elements

    • RELATION

      • Elastic ELAS - elastic behavior

      • ELAS_HYPER - hyper-elastic behavior

    • DEFORMATION: GROT_GDEP - large displacement and rotation

  • Method (METHODE) - option for choosen method the below (last entry)

    • NEWTON - Newton-Raphson, default, see Quasi-static nonlinear algorithm

    • IMPLEX

    • NEWTON_KRYLOV - inaccurate version of the algorithm of Newton-Raphson; the precision of the resolutions of systems linear by an iterative method is adapted during each step of loading, see Quasi-static nonlinear algorithm

    • MODELE_REDUIT (model reduced) - model reduction. It is necessary to have built a base to reduce (order beforehand DEFI_BASE_REDUITE).

  • CONVERGENCE

    • RESI_GLOB_RELA - default 1e-06

    • ITER_GLOB_MAXI - Maximum number of Newton’s iteration, count carried out to solve the total problem at every moment (10 by defaults)

  • Solver (SOLVEUR )

    • Method (METHODE) - default MUMPS

    • RENUM - default AUTO

  • Storing (ARCHIVAGE) - by default all results are stored. Following option are meant to reduce the amount of data to store.

    • Either One

      • Time step list (LIST_INST) - link to time list table (DEFI_LIST_REEL), stores only data at the time steps

      • Time (INST)

      • PAS_ARCH - the frequency of storing, every n sgeps. 1 for storing all steps.

    • CHAM_EXCLU - fields to exlude storing, except for the last step.

  • NEWTON

    • REAC_INCR (increments) - default 1. Quasi-Newton method: recompute matrix every n time’s step

    • MATRICE

      • TANGENTE - total iterations, default

      • ELASTIQUE - Quasi-Newton method: using elastic matrix

    • REAC_ITER (iterations) - default 0. Quasi-Newton method: recompute matrix every n Newton’s iteration

8.2.2.1 Large displacement and rotation

Large rotations and large displacements, but remaining in small deformations. The deformations used are the deformations (strains) of Green-Lagrange in combination with the Piola-Kirchhoff stresses in initial configuration. For COQUE_3D it is a total Lagrangian formulation.

8.2.2.1.1 Linear elasticity

Linear elasticity supported modelings: 3D, 2D, CONT_PLAN, DISCRETE, INCO_UPG, INCO_UP, POU_*, CONT_1D, CONT_1D (PMF), SHB, CABLE, CABLE_POULIE, COQUE_3D, DKTG, Q4GG.

AsterStudy - Analysis - STAT_NON_LINE

  • COMPORTEMENT (behavior)

    • All (TOUT): Yes (OUI)

    • Group of element (GROUP_MA) - define the group of elements

    • RELATION

      • Elastic ELAS - elastic behavior

    • DEFORMATION: GROT_GDEP - large displacement and rotation

8.2.2.1.2 Hyper elasticity

Hyperelasticity supported modelings: D_PLAN, C_PLAN, AXIS, 3D.

AsterStudy - Analysis - STAT_NON_LINE

  • COMPORTEMENT (behavior)

    • All (TOUT): Yes (OUI)

    • Group of element (GROUP_MA) - define the group of elements

    • RELATION

      • ELAS_HYPER - hyper-elastic behavior

    • DEFORMATION: GROT_GDEP - large displacement and rotation

8.2.2.2 Non-linear Material - Elastoplasticity of von Mises

“Nonlinear” relation of elastic behavior (law of HENCKY), of Von Mises with nonlinear isotropic work hardening.

Supported local modelings: 3D, 2D, INCO_UPG, INCO_UP, CONT_PLAN, CONT_1D, CONT_1D (PMF), SHB. Great deformations of the type SIMO_MIEHE are available for this behavior.

Set load as linear static but normized. The load will be multiplyed by a function.

AsterStudy - Analysis - STAT_NON_LINE

  • Model (MODELE) - link to the model

  • Material field (CHAM_MATER) - link to the material assignment

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to time stepping table (DEFI_LIST_REEL) for manual time step size or to the automatic time step function (DEFI_LIST_INST)

  • Structural element characteristic (CARA_ELEM) - link to element characteristics if using structural elements

  • Loads (EXCIT)

    • Load (CHARGE) - link to the load assignment

    • Multiplier function (FONC_MULT) - link to load function (DEFI_FONCTION)

  • COMPORTEMENT (behavior)

    • Exacly One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA) - link to the group of elements

    • RELATION: VMIS_ISOT_TRAC - elastoplastic behavior

    • DEFORMATION: GROT_GDEP - large displacement and rotation

  • Storing (ARCHIVAGE)

    • Time step list (LIST_INST) - link to time list table (DEFI_LIST_REEL)

  • NEWTON

    • REAC_INCR (increments) - default 1. Quasi-Newton method: recompute matrix every n time’s step

  • CONVERGENCE

    • RESI_GLOB_RELA - default 1e-06

    • ITER_GLOB_MAXI - Maximum number of Newton’s iteration, e.g. 100, count carried out to solve the total problem at every moment (10 by defaults)

8.2.2.3 Multi-fibre analysis with linear material

AsterStudy - Analysis - STAT_NON_LINE

  • Model (MODELE) - link to the model assignement

  • Material field (CHAM_MATER) - link to the material assignement

  • Loads (EXCIT) - link to all boundary conditions (support and loads)

    • [0]

      • Load (CHARGE) - link to the a boundary condition

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to time stepping table (DEFI_LIST_REEL) for manual time step size or to the automatic time step function (DEFI_LIST_INST)

  • Structural element characteristic (CARA_ELEM) - link to the structural parameters

  • COMPORTEMENT (behavior)

    • RELATION: MULTIFIBRE - multi-fibre beam behavior, the relation / behavior is defined inside the fibre commands

8.2.2.4 Contact and Sliding

Orient contact normals with MODI_MAILLAGE and ORIE_PEAU_2D or ORIE_PEAU_3D and select both contact regions.

Define contact boundary condition (DEFI_CONTACT).

AsterStudy - Analysis - STAT_NON_LINE

  • Model (MODELE) - link to the model assignement

  • Material field (CHAM_MATER) - link to the material assignement

  • Loads (EXCIT) - link to all boundary conditions (support and loads)

    • [0]

      • Load (CHARGE) - link to static boundary conditions, e.g. support

    • [1]

      • Load (CHARGE) - link to dynamic boundary conditions, (mormalized) direction

      • Multiplier function (FONC_MULT) - link to the load table, amplitude

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to time stepping table (DEFI_LIST_REEL) for manual time step size or to the automatic time step function (DEFI_LIST_INST)

  • CONTACT - link to the contact definition (DEFI_CONTACT)

  • COMPORTEMENT (behavior)

    • RELATION: Elastic (ELAS) - elastic behavior

    • Group of element (GROUP_MA) - link to the element group of whole model or the part with contact

  • Solver (SOLVEUR )

    • Method (METHODE): MUMPS

    • NPREC: 8

  • Storing (ARCHIVAGE)

    • Time step list (LIST_INST) - link to time list table (DEFI_LIST_REEL)

  • NEWTON

    • REAC_ITER - default 1

8.3 Dynamic analysis

Damping properties

  • Viscous (discrete) damping

    • \(M \ddot X + C \dot X + K X = E \, u(t)\)

    • Dashpot modeling using discrete elements

  • Rayleigh damping

    • \(C = \alpha K + \beta M\)

    • DEFI_MATERIAU: AMOR_ALPHA & AMOR_BETA

    • ASSEMBLAGE

      • OPTION: AMOR_MECA

  • Structural (hysteretic) damping

    • \(-\omega^2 M \ddot X + (j\kappa + 1 )K X = E \, u(\omega)\)

    • Reserved for Frequency Response Analysis

    • ASSEMBLAGE

      • OPTION: RIGI_MECA_HYST

  • Modal damping

    • \(\ddot\eta_i + \xi_i \dot\eta_i + \omega^2_i \eta_i = \phi^\T_i / m_i \cdot E \, u(t)\)

    • DYNA_VIBRA

      • TYPE_CALCUL: TRAN

      • BASE_CALCUL: GENE

      • AMOR_REDUIT: 0.01

    • DYNA_VIBRA

      • Can also be used without model reduction but require a modal basis

      • TYPE_CALCUL: TRAN

      • BASE_CALCUL: PHYS

      • AMOR_MODAL

        • MODES - link to modes

        • AMOR_REDUIT: 0.01

For transient analysis, an initial time step suggestion is

\[\Delta t\ti{initial} = \frac{1}{20 f\ti{response}}\]

with \(f\ti{response}\) as the frequency of the highest mode of interest.

8.3.2 Linear dynamic analysis

AsterStudy - Pre Analysis - ASSEMBLAGE

  • MATR_ASSE

    • [0]

      • MATRICE: K (choosen name for stiffness matrix)

      • Option (OPTION): RIGI_MECA

    • [1]

      • MATRICE: M (choosen name for mass matrix)

      • Option (OPTION): MASS_MECA

    • [2] - order matters! To calculate AMOR_MECA, one must have calculated RIGI_MECA and MASS_MECA previously (in the same call)

      • MATRICE: D (choosen name for damping matrix)

      • Option (OPTION): AMOR_MECA

  • VECT_ASSE - the force vector, for force excitation. Not used for base excitation.

    • VECTEUR - define the vector name, e.g. fx

    • CHAR_MECA

    • Load (CHARGE) - link to the boundary condition where the load factor and direction is defined (AFFE_CHAR_MECA).

  • Model (MODELE) - link to the model

  • NUME_DDL - Enter new result name, e.g. nddl

  • Material field (CHAM_MATER)

  • Structural element characteristic (CARA_ELEM) - optional for structural elements

  • Load (CHARGE) - link to all boundary conditions, not the load condition which is used in VAECT_ASSE

8.3.2.1 Harmonic analysis in modal coordinate system

First create a stage for a modal analysis first. The result will be transformed into the modal coordinated (GENE generalized) system to perform the harmonic dynamic analysis.

AsterStudy - Function and Lists - DEFI_LIST_REEL - define list of frequencies

  • Name - for example listfreq

  • DEBUT - define the starting point, e.g. 0.0 or 0.1.

  • INTERVALLE

    • Exacly One

      • NOMBRE - number of intervals

      • PAS - step size, e.g. 0.01

    • JUSQU_A - end time, e.g. 1.0 or a variable.

Transform from physical coordinate system to modal coordinate system (projection).

AsterStudy - Pre Analysis - PROJ_BASE

  • MATR_ASSE_GENE

    • [0]

      • MATR_ASSE (matrix in pysical coordinate system) - link to the mass matrix

      • MATRICE: MG

    • [1]

      • MATR_ASSE - link to the stiffness matrix

      • MATRICE: KG

  • VECT_ASSE_GENE

    • VECT_ASSE - link to the load vector (from inside ASSEMBLAGE)

    • VECTEUR - define the name of the vector in modal coordinate system, e.g. fxG

  • BASE - link to the modal analysis

  • NUME_DDL_GENE: nddlG

Modal damping can be created with COMB_MATR_ASSE or directly inside DYNA_VIBRA.

AsterStudy - Pre Analysis - COMB_MATR_ASSE - generalized damping matrix

  • Name - for example CG

  • CALC_AMOR_GENE

    • Exacly One

      • AMOR_REDUIT - modal damping \(\eta\)i

        • \(\eta\)1, for example 0.01 damping. First value will be used for the first mode, etc. If there are more modes than damping coefficients than the last coefficient will be used for all further modes.

      • LIST_AMOR - link to list with modal damping coefficients \(\eta\)i

    • RIGI_GENE - link to the generalized stiffness matrix

    • MASS_GENE - link to the generalized mass matrix

AsterStudy - Analysis - DYNA_VIBRA - for harmonic and transient anlaysis

  • BASE_CALCUL

    • GENE - for modal base system calculations, for reduced techniques

  • TYPE_CALCUL

    • HARM - harmonic, steady state response

  • LIST_FREQ - link to the frequency list

  • Loads (EXCIT)

    • VECT_ASSE_GENE - link to the generalized load factor vector (from inside PROJ_BASE)

    • COEF_MULT (multiplicatio factor): 1 (for example)

  • MATR_MASS - link to the generalized mass matrix

  • MATR_RIGI - link to the generalized stiffness matrix

  • modal damping either directly (AMOR_MODAL) or via pre defined damping matrix (MATR_AMOR). Other damping methods see Material - Dynamic properties.

    • AMOR_MODAL - define modal damping \(\eta\)ieither directly (AMOR_REDUIT) or via list (LIST_AMOR).

      • AMOR_REDUIT - modal damping \(\eta\)i

        • \(\eta\)1, for example 0.01 damping. Fist value will be used for the first mode, etc. If there are more modes than damping coefficients than the last coefficient will be used for all further modes.

      • LIST_AMOR - link to list with modal damping coefficients \(\eta\)i

    • MATR_AMOR - link to the generalised damping matrix (COMB_MATR_ASSE).

  • SCHEMA_TEMPS - optionally define integratin method

    • SCHEMA

      • DIFF_CENTRE

      • NEWMARK

  • Model (MODELE)

  • Structural element characteristic (CARA_ELEM) - optional for structural and discrete elements

8.3.2.2 Transient analysis in physical coordinate system

The time-stepping list is probably already defined for a load function, if not define one:

AsterStudy - Function and Lists - DEFI_LIST_REEL - define time-steps t

  • Name - for example listinst

  • DEBUT - define the starting point, e.g. 0.0.

  • INTERVALLE

    • Exacly One

      • NOMBRE - number of intervals

      • PAS - step size, e.g. 0.01

    • JUSQU_A - end time, e.g. 1.0 or a variable.

AsterStudy - Analysis - DYNA_VIBRA - for harmonic and transient anlaysis

  • Name - optionally alter name to restran instead to resharm for transient analysis.

  • BASE_CALCUL

    • PHYS - for physical base system calculations (used in this example)

  • TYPE_CALCUL

    • TRAN - transient response (used in this example)

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to the time-step list (DEFI_LIST_REEL)

  • MATR_MASS - link to the mass matrix

  • MATR_RIGI - link to the stiffness matrix

  • MATR_AMOR - link to the damping matrix

  • SCHEMA_TEMPS - optionally define integratin method

    • SCHEMA

      • DIFF_CENTRE

      • NEWMARK

  • Loads (EXCIT)

    • VECT_ASSE - link to the load factor vector (ASSEMBLAGE) in case of force excitation, link to the acceleration (CALC_CHAR_SEISME) in case of base excitation.

    • Multiplier function (FONC_MULT) - link to the time-dependent load values (CALC_FONC_INTERP)

  • Model (MODELE)

  • Structural element characteristic (CARA_ELEM) - optional for structural and discrete elements

8.3.3 Non-linear dynamic analysis

DYNA_NON_LINE

8.4 Thermal analysis

\[\rho C \dot T - \lambda \Delta T - s = 0\]
8.4.1 Linear static or transient thermal analysis

AsterStudy - Analysis - Linear thermal analysis (THER_LINEAIRE )

  • Name - for example resther

  • Model (MODELE)

  • Material field (CHAM_MATER)

  • Loads (EXCIT)

    • Load (CHARGE)

  • Structural element characteristic (CARA_ELEM)

For transient / time dependent calculations we need a time function coupled to a transient load and insert it under Loads, see define function 7.7.1 Ramp function DEFI_FONCTION and a time step function DEFI_LIST_REEL. then define Initial state/condition (ETAT_INIT) and time stepping in Linear thermal analysis (THER_LINEAIRE )

AsterStudy - Function and Lists - DEFI_LIST_REEL - define time-steps t

  • Name - for example listinst

  • DEBUT - define the starting point, e.g. 0.0.

  • INTERVALLE

    • Exacly One

      • NOMBRE - number of intervals

      • PAS - step size, e.g. 0.01

    • JUSQU_A - end time, e.g. 1.0 or a variable.

continuation of: AsterStudy - Analysis - Linear thermal analysis (THER_LINEAIRE )

  • Initial condition (ETAT_INIT)

    • Either

      • STATIONNAIRE: Yes (OUI) - default, results of a stationnary calculation

      • EVOL_THER - The result of another thermal calculation + chosen time (NUME_ORDRE or INST)

      • CHAM_NO - A known temperature field, for example, created with CREA_CHAMP

      • Value (VALE) - A constant temperature T0to all the model

  • Timestepping (INCREMENT)

    • Time step list (LIST_INST) - link to the time-step list (DEFI_LIST_REEL)

8.4.2 Non-linear thermal analysis

for non-linear load, e.g. radiation or for non-linear materials

8.4.3 Analytical temperature field

Example analytical formula of the temperature field in the thickness of an axisymmetric cylinder (X).

\[T\ti{int} - \ln\left( \frac{X}{R\ti{int}} \right) \frac{T\ti{ext} - T\ti{int}}{\ln\left(\frac{R\ti{ext}}{R\ti{int}}\right)}\]

AsterStudy - Functions and Lists - FORMULE

  • Name - for example T0

  • Value (VALE): 40-log(X/20)*(40-15)/log(21/20)

  • Parameter name (NOM_PARA): X

AsterStudy - Post Processing - CREA_CHAMP

  • Name - for example fT0

  • TYPE_CHAM: NOEU_TEMP_F

  • OPERATION: Assignment (AFFE)

  • Mesh (MAILLAGE) - link to mesh

  • Assignment (AFFE)

    • All (TOUT): Yes (OUI)

    • VALE_F - link to formula T0

    • NOM_CMP: TEMP

AsterStudy - Output - CREA_RESU

  • Name - for example resther

  • OPERATION: Assignment (AFFE)

  • TYPE_RESU: EVOL_THER

  • NOM_CHAM: Temperature (TEMP)

  • Assignment (AFFE)

    • Time (INST): 0

    • Single value (CHAM_GD) - link to the field fT0

Can be used as initial condition (AFFE_MATERIAU - AFFE_VARC - EVOL) of a thermo mechanical analysis.

9 Post Processing

9.1 Mechanic

See Constraints, efforts, forces and deformations for more information.

Solver calculates displacementa and efforts at element Gauss points, all other solutions must be specified or demanded.

  • Displacements (DEPL)

  • Efforts (SIEF_ELGA)

    • for 3D elements, stresses

    • for bars and beams, forces and moments

    • SIEF_ELGA means ’SI gma’ (stress) or ’EF fort’ (force or moment), per ’EL ement’ at ’GA uss’ points.

Beams (Exact beam elements POU_D_E and POU_D_T)

The fields SIEF_* give 6 components, it contains the normal force, N, the 2 shear forces, VY and VZ, and the 3 moments, MT, MFY and MFZ, in element LOCAL axis.

The fields SIPO_* (’SI gma’ ’PO utre’, this field is restricted to beams only)

  • SN \(\sigma\ti{xx}\) is the part of normal stress due to the normal force N; SN = N/A

  • SMFY \(\sigma\ti{xx}\) is the part of normal stress due to the bending moment MFY; SMFY = MFY/IY × RZ

  • SMFZ \(\sigma\ti{xx}\) is the part of normal stress due to the bending moment MFZ; SMFZ = - MFZ/IZ × RY

  • SVY \(\sigma\ti{xy}\) is the shear stress due to the shear force VY and coefficient aY in y direction; SVY = VY/A x aY

  • SVZ \(\sigma\ti{xz}\) is the shear stress due to the shear force VY and coefficient aZ in z direction; SVZ = VZ/A x aZ

  • SMT \(\sigma\ti{yz}\) is the shear stress due to the torque MX; SMT = MX/JX x RT

The fields SIPM_* (’SI gma’ ’P outre’ ’M aximum’, this field is restricted to beams only)

  • SIXX is the extremum (maximum or minimum) normal stress due to the normal force and the two bending moments.

Plates

The fields EFGE_* give 9 components, the first three being the normal forces (with the unit of N/mm), NXX, NXY, NXZ, the next three the moments, MX, MY, MZ, and the last three the shear forces, VX, VY, VZ, in the element LOCAL axis.

3D elements

stresses SIXX, SIYY, SIZZ, SIXY, SIYZ and SIXZ, in the global axis.

9.1.1 Support reactions and nodal forces (force equilibrium) FORC_NODA, REAC_NODA

See also Constraints, efforts, forces and deformations.

Calculate nodal forces and forces on fixed dofs (reactions).

AsterStudy - Post Processing - CALC_CHAMP

  • Name - same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • FORCE:

    • REAC_NODA - for support reactions

    • FORC_NODA - for nodal forces

Calculate the sum of reaction forces and nodal forces (force equilibrium).

AsterStudy - Post Processing - POST_RELEVE_T

  • ACTION (do not mix different actions, like EXTRACTION and EXTREMA, cols in the table are different)

    • [0] (extract all nodal forces (e.g. support reactions))

      • Result (RESULTAT) link to the analysis or other post processing operations

      • Group of node (GROUP_NO) - link to node mesh selection of support regions. If not present in the list select group(s) via ’Manual selection’ (observed using DEFI_GROUP).

      • exacly one

        • TOUT_CMP: OUI - to extract all info on all nodes

        • NOM_CMP: e.g. DX, DY, DZ - to extract defined info on all nodes

      • OPERATION: EXTRACTION

      • INTITULE - name of extraction, e.g. ’node reactions’

      • NOM_CHAM: REAC_NODA

    • [1] (extract all nodal forces)

      • Result (RESULTAT) link to the analysis or other post processing operations

      • Group of node (GROUP_NO) - link to node mesh selection of the whole model If not present in the list select group(s) via ’Manual selection’ (observed using DEFI_GROUP).

      • TOUT_CMP: OUI - to extract info on all nodes

      • OPERATION: EXTRACTION

      • INTITULE - name of extraction, e.g. ’node forces’

      • NOM_CHAM: FORC_NODA

    • [2] (extract the sum of nodal forces (e.g. sum of support reactions))

      • Result (RESULTAT) link to the analysis or other post processing operations

      • Group of node (GROUP_NO) - link to node mesh selection of support regions. If not present in the list select group(s) via ’Manual selection’ (observed using DEFI_GROUP).

      • RESULTANTE: DX, DY for 2D or DX, DY, DZ for 3D - sum values in defined directions

      • OPERATION: EXTRACTION

      • INTITULE - name of extraction, e.g. ’sum reaction’

      • NOM_CHAM: REAC_NODA

    • [3] (extract the sum of nodal forces (e.g. force equilibrium))

      • Result (RESULTAT) link to the analysis or other post processing operations

      • Group of node (GROUP_NO) - link to node mesh selection of the whole model. If not present in the list select group(s) via ’Manual selection’ (observed using DEFI_GROUP).

      • RESULTANTE: DX, DY for 2D or DX, DY, DZ for 3D - sum values in defined directions

      • OPERATION: EXTRACTION

      • INTITULE - name of extraction, e.g. ’sum forces’

      • NOM_CHAM: REAC_NODA

Save the sums into a file.

AsterStudy - Output - IMPR_TABLE

  • TABLE - link to the table (POST_RELEVE_T)

  • Filename (UNITE) - define the location and the filename of the table file.

Display reaction forces as arrows.

ParaVis

  • MED-file optionally (2D) check GenarateVectors in the Properties tab.

  • Filter - Common - Glyph

    • Properties

      • Glypg Source: Arrow

      • Active Attributes

        • Scalars: None

        • Vectors: reslin__FORC_NODA_Vector

      • Scaling

        • Scale Mode: vector

        • Scale Factor - Reset using curring data values

      • Masking

        • Glyph Mode: All Points

    • Display

      • Coloring - choose a result field or the Glyph Vector.

9.1.2 Stress fields EFGE_*, SIEF_*, SIGM_*, SIPM_*, SIPO_*, SIRO_*, STRX_* - SIEQ_*, VARI_*

See also Constraints, efforts, forces and deformations.

AsterStudy - Post Processing - CALC_CHAMP

  • resuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • CONTRAINTE:

    • EFGE_ELGA, EFGE_ELNO, EFGE_NOEU,

    • SIEF_ELGA, SIEF_ELNO, SIEF_NOEU,

    • SIGM_ELGA, SIGM_ELNO, SIGM_NOEU,

    • SIPM_ELNO

    • SIPO_ELNO, SIPO_NOEU

    • SIRO_ELEM (3D, 3D_SI, D_PLAN, D_PLAN_SI)

    • STRX_ELGA

  • CRITERES: SIEQ_ELGA, SIEQ_ELNO, SIEQ_NOEU

  • VARI_INTERNE: VARI_NOEU

9.1.2.1 Stresses of shells

To visualize stress results (SIGM_NOEU) of a surface along a paticular thickness following commands are needed. ..._NOEU data not direct calculatable.

AsterStudy - Post Processing - CALC_CHAMP

  • Name - same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • CONTRAINTE: SIGM_ELNO

  • CRITERES: SIEQ_ELNO

AsterStudy - Post Processing - POST_CHAMP

  • Name - define a name for the specific surface (layer number and position)

  • EXTR_COQUE

    • NOM_CHAM

      • SIGM_ELNO

      • SIEQ_ELNO

    • NUME_COUCHE - the number of the layer, e.g. 1 for the first layer

    • NIVE_COUCHE

      • INF (inferieur) lower ordinate of the layer (bottom/inner layer/face),

      • SUP (superieur) higher ordinate of the layer (top/outer layer/face),

      • MOY (moyenne) average ordinate of the layer (average/mid/neutral layer/face/plate).

  • Result (RESULTAT) - link to the CALC_CHAMP

AsterStudy - Post Processing - CALC_CHAMP

  • Name - same name as of the specific surface calculation to extend the results.

  • Result (RESULTAT) - link to the specific surface calculation (POST_CHAMP)

  • CONTRAINTE: SIGM_NOEU

  • CRITERES: SIEQ_NOEU

9.1.3 Strain fields DEGE_*, EPFD_*, EPME_*, EPMG_*, EPSG_*, EPSI_*, EPSP_*, EPVC_*, EPSL_*
  • DEGE_* - déformations généralisées - generalized deformations

  • EPFD_* - epsilon (déformations) de fluage de dessiccation - dry creep strain

  • EPME_* - epsilon (déformations) «mécaniques» (petits déplacements) - “mechanical” strain (small displacements) (without drying and hydration and fluid pressure and unelastic but including creep)

    \[\varepsilon_{ij}\ho{m}(u) = \frac{1}{2}(u_{i,j}+u_{j,i}) - \varepsilon\ho{th}\]
  • EPMG_* - epsilon (déformations) «mécaniques» (grands déplacements) - “mechanical” strain (large displacements)

    \[E_{ij}\ho{m}(u) = \frac{1}{2}(u_{i,j}+u_{j,i}+u_{k,i}u_{k,j}) - \varepsilon\ho{th}\]
  • EPSG_* - epsilon (déformations) de Green-Lagrange - Green-Lagrange strain

    \[E_{ij}(u) = \frac{1}{2}(u_{i,j}+u_{j,i}+u_{k,i}u_{k,j})\]
  • EPSI_* - epsilon (déformations) - strain (for structural elements in local reference coordinate system)

    \[\varepsilon_{ij}(u) = \frac{1}{2}(u_{i,j}+u_{j,i})\]
  • EPSP_* - epsilon (déformations) anélastiques - unelastic strain (possible unelastic strain \(\varepsilon\ho{a}\), eigen creep strain of Granger \(\varepsilon\ho{fl}\))

    \[\varepsilon\ho{p} = \varepsilon(u) - A^{-1} \sigma - \varepsilon\ho{th}(T) - \varepsilon\ho{a} - \varepsilon\ho{fl}\]
  • EPVC_* - epsilon (déformations) liées aux variables de commande - strain related to the variables of order:

    • thermal strain EPTHER_L, EPTHER_T, EPTHER_N \(\varepsilon_i\ho{th}=\alpha_i(T-T\ti{ref}); i\in\{L,T,N\}\) (for isotropic the 3 components are the same) \(\alpha_i\) thermal dilatation (expansion) coefficient

    • drying (séchage) EPSECH (for concrete, du béton) \(\varepsilon\ho{sech}=-K\ti{dessic}(S\ti{ref}-S)\), \(S\) variable of drying, \(K\ti{dessic}\) dry (dessiccation) coefficient

    • hydration (hydratation) EPHYDR (for concrete, du béton) \(\varepsilon\ho{hydr} = -B\ti{endog}h\), \(h\) variable of hydration, \(B\ti{endog}\) endogenous (endogène) coefficient

    • pressure of fluid (thermo-hyrdo-mechanics) EPPTOT \(\varepsilon\ho{ptot} = \frac{b}{3K}p\ti{tot}\), \(p\ti{tot}\) total pressure of the fluid, \(b\) Biot coefficient, \(K\) modulus of elasticity

  • EPSL_* - epsilon (déformations) logarithmiques - logarithmic strain

    \[\tensor{E}\ti{l}(u) = \frac{1}{2}(\ln(\tensor{F}^\T \tensor{F}))\]

AsterStudy - Post Processing - CALC_CHAMP

  • resuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • DEFORMATION

    • DEGE_ELGA (plate, pipe, no beams), DEGE_ELNO, DEGE_NOEU (beam, plate, pipe)

    • EPFD_ELGA, EPFD_ELNO, EPFD_NOEU (BETON_UMLV_FP, BETON_BURGER_FP)

    • EPFP_ELGA, EPFP_ELNO, EPFP_NOEU (GRANGER_FP, BETON_UMLV_FP, BETON_BURGER_FP)

    • EPME_ELGA, EPME_ELNO, EPME_NOEU

    • EPMG_ELGA, EPMG_ELNO, EPMG_NOEU

    • EPSG_ELGA, EPSG_ELNO, EPSG_NOEU

    • EPSI_ELGA, EPSI_ELNO, EPSI_NOEU

    • EPSP_ELGA, EPSP_ELNO, EPSP_NOEU

    • EPVC_ELGA, EPVC_ELNO, EPVC_NOEU

    • EPSL_ELGA, EPSL_ELNO, EPSL_NOEU

9.1.4 Internal variables VAEX_*, VARC_*, VARI_*
  • VAEX_* - extraction des variables internes - single variable extraction from either VARI_ELGA or VARI_ELNO only thermal-hydro-mechanic. A single component to choose

    • DPORO - Variation de la porosité du matériau - Variation of the porosity of material

    • DRHOLQ - Variation de la masse volumique du matériau - Variation of the density of material

    • DPVP - Variation de la pression de vapeur - Variation of the steam pressure

    • SATLIQ - Saturation du liquide - Saturation of the liquid

    • EVP - Déformation plastique volumique cumulée - Cumulated voluminal plastic deformation

    • IND_ETA - Indicateur d’état mécanique - Mechanical indicator of state

    • D - Valeur de l’endommagement - Value of the damage

    • IND_END - Indicateur d’endommagement - Indicator of damage

    • TEMP_MAX - Température maximale - Maximum temperature

    • GAMP - Déformation déviatoire plastique cumulée - Plastic deformation déviatoire cumulated

    • PCR - Pression critique - Critical pressure

    • SEUIL_HYD - Seuil hydrique - Hydrous threshold

    • IND_HYD - Indicateur d’irréversibilité hydrique - Hydrous indicator of irreversibility

    • PCOHE - Pression de cohésion - Pressure of cohesion

    • COMP_ROC - Comportement de la roche - Behavior of the rock

    • SEUIL_ISO - Seuil isotrope - Isotropic threshold

    • ANG_DEV - Angle du seuil déviatoire - Angle of the threshold déviatoire

    • X11 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • X22 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • X33 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • X12 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • X13 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • X23 - Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardening

    • DIST_DEV - Distance normalisée au seuil déviatoire - Distance standardized with the threshold déviatoire

    • DEV_SUR_CRIT - Rapport entre le seuil déviatoire et le seuil déviatorique critique - Relationship between the threshold déviatoire and the critical threshold deviatoric

    • DIST_ISO - Distance normalisée au seuil isotrope - Distance standardized with the isotropic threshold

    • NB_ITER - Nombre d’itérations internes - Iteration count internal

    • ARRET - Valeur du test local d’arrêt du processus itératif - Value of the local test of stop of the iterative process

    • NB_REDE - Nombre de redécoupage local du pas de temps - Number of local recutting of the step of time

    • SIGNE - Signe du produit contracté de la contrainte déviatorique par la déformationplastique déviatorique - Sign of the contracted product of the deviatoric constraint by the deviatoric plastic deformation

  • VARC_ELGA see DEFI_MATERIAU

    • TEMP

    • HYDR

    • SECH

    • CORR

    • IRRA

    • PTOT

    • DIVU

    • NEUT1

    • NEUT2

  • VARI_ELNO, VARI_NOEU (VARI_ELGA is calculated by default for non-linear analysis)

    • V1, … Vi, … Vn

AsterStudy - Post Processing - CALC_CHAMP

  • resuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • VARI_INTERNE

    • VAEX_ELGA, VAEX_ELNO, VAEX_NOEU (only thermal-hydro-mechanic)

    • VARC_ELGA

    • VARI_ELNO, VARI_NOEU (VARI_ELGA default available for non-linear)

9.1.5 Energy fields DISS_*, ECIN_*, ENEL_*, ENTR_*, EPOT_*, ETOT_*
  • DISS_* - (densité) d’énergie dissipée par l’endommagemen - dissipated energy or energy density of damage. Only for DKTG, GLRC_DM see Law of behavior of reinforced concrete plates GLRC_DM

    • ENDO

  • ECIN_ELEM - énergie cinétique - kinetic energy

    \[E\ti{c} = \frac{1}{2}mv^2\]
  • ENEL_* - (densité) d’énergie élastique - elastic energy (density)

    \[E\ti{p} = \frac{1}{2}\sigma A^{-1} \sigma\]
  • ENTR_ELEM - énergie élastique modifiée de traction - modified elastic energy of traction (only for DEFORMATION=PETIT or DEFORMATION=PETIT_REAC)

    \[E\ti{el}\ho{traction} = \frac{\lambda}{2} H(\tr(\epsilon)) \tr(\epsilon)^2 + \mu \sum_{i=1}^3 H(\epsilon_i) \epsilon_i^2\]

    where \(H\) Heavidise function, \(\epsilon\) elastic strain tensor, \(\epsilon_i\) principal elastic strain

    • TOTALE

  • EPOT_ELEM - énergie potentielle de déformation - potential energy of deformation

    \[E\ti{pot}\ho{2D,3D} = \frac{1}{2} \int\limits_{\text{element}} \tensor{\varepsilon}(U) \cdot \tensor{A} \cdot \tensor{\varepsilon}(U) \dif{v} - \int\limits_{\text{element}} \tensor{\varepsilon}(U) \cdot \tensor{A} \cdot \tensor{\varepsilon}\ho{th}(U) \dif{v} + \frac{1}{2} \int\limits_{\text{element}} \tensor{\varepsilon}\ho{th}(U) \cdot \tensor{A} \cdot \tensor{\varepsilon}\ho{th}(U) \dif{v}\]
    \[E\ti{pot}\ho{beam} = \frac{1}{2} u^\T \tensor{K}_e u - u^\T \tensor{B}^\T \tensor{A} \tensor{\varepsilon}\ho{th} + \frac{1}{2} \tensor{\varepsilon}\ho{th} \tensor{A} \tensor{\varepsilon}\ho{th}\]
    \[E\ti{pot}\ho{plate,shell} = \frac{1}{2} u^\T \tensor{K}_e u - u^\T \tensor{B}^\T \tensor{A} \tensor{\varepsilon}\ho{th}\]
  • ETOT_* - incrément (de densité) d’énergie de déformation totale

    • TOTALE

AsterStudy - Post Processing - CALC_CHAMP

  • resuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • ENERGIE

    • DISS_ELEM, DISS_ELGA, DISS_ELNO, DISS_NOEU

    • ECIN_ELEM

    • ENEL_ELEM, ENEL_ELGA, ENEL_ELNO, ENEL_NOEU

    • ENTR_ELEM

    • EPOT_ELEM

    • ETOT_ELEM, ETOT_ELGA, ETOT_ELNO, ETOT_NOEU

9.1.6 Error field CALC_ERREUR

AsterStudy - Post Processing - CALC_ERREUR

  • resuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the Analysis

  • OPTION

    • ERME_ELEM - estimator of error in residue

9.1.7 Extreme displacements, stresses

AsterStudy - Post Processing - POST_RELEVE_T

  • ACTION (do not mix different actions, like EXTRACTION and EXTREMA, cols in the table are different)

    • [0] (extreme displacement regardless of the direction)

      • Result (RESULTAT) link to the analysis or other post processing operations

      • OPERATION: EXTREMA

      • INTITULE - name of extreme, e.g. ’extreme displacement’

      • NOM_CHAM: DEPL

    • [1] (extreme displacement in x direction)

      • Result (RESULTAT) link to the analysis or other post processing operations

      • NOM_CMP: DX

      • OPERATION: EXTREMA

      • INTITULE - name of extreme, e.g. ’extreme displacement x’

      • NOM_CHAM: DEPL

    • [2] (extreme stress regardless of the direction)

      • Result (RESULTAT) link to the analysis or other post processing operations

      • OPERATION: EXTREMA

      • INTITULE - name of extreme, e.g. ’extreme stress’

      • NOM_CHAM: SIEF_NOEU

    • [3] (extreme stress; e.g. von Mises)

      • Result (RESULTAT) link to the analysis or other post processing operations

      • NOM_CMP: VMIS, VMIS_SG

      • OPERATION: EXTREMA

      • INTITULE - name of extreme, e.g. ’extreme stress vM’

      • NOM_CHAM: SIEQ_NOEU

9.1.8 Extract displacement at specific node group to a table

AsterStudy - Post Processing - POST_RELEVE_T

  • ACTION

    • Result (RESULTAT) - link to the analysis or other post processing operations

    • Group of node (GROUP_NO) - link to node mesh selection of interest. If not present in the list select group(s) via ’Manual selection’

    • Exacly One

      • TOUT_CMP: Yes (OUI) - extract filed (see NOM_CHAM) in all directions

      • RESULTANTE - define the direction of interest; DX, DY for 2D or DX, DY, DZ for 3D or also DRX, DRY, DRZ for beams and shells

    • OPERATION: EXTRACTION

    • INTITULE - define the name of extraction, e.g. ’displacement’

    • NOM_CHAM - the field where the data will be extracted from

      • DEPL - displacement

      • ACCE - acceleration

    • All (TOUT): Yes (OUI) - in case of modal analysis to get the displacement of all the modes

The extraction can be saved as text file, see Output - Text file of table. Or as 2D plot, see 10.6 2D plot with xmgrace

9.1.9 Extract displacement along line as table

AsterStudy - Post Processing - MACR_LIGN_COUPE

  • RESULTAT: reslin

  • LIGN_COUPE

    • TYPE: SEGMENT

    • NB_POINTS - number of points, e.g. 100

    • COOR_ORIG - x, y (and z) coordinates of begin of line, e.g. 0.0, 0.0, 0.0

    • COOR_EXTR - x, y (and z) coordinates of end of line, e.g. 1000.0, 0.0, 0.0

  • NOM_CHAM: DEPL

The extraction can be saved as text file, see Output - Text file of table. Or as 2D plot, see 10.6 2D plot with xmgrace.

9.1.10 Convert fields to cylindrical data

For example displacement and stress field SIGM_NOEU in cylindrical coordinats with z as axis.

AsterStudy - Post Processing - MODI_REPERE

  • Name - define a new name for the specific surface (layer number and position) for the cylindrical data (reuse of same name not possible)

  • Result (RESULTAT) - link to the the analysis, POST_CHAMP or CALC_CHAMP

  • MODI_CHAM

    • [0] 2D vector field, expects data as follow: X, Y and returns R, θ

      • TYPE_CHAM: VECT_3D

      • NOM_CHAM - e.g. DEPL

      • NOM_CMP - e.g. DX, DY, DZ

    • [1] 3D vector field, expects data as follow: X, Y, Z and returns R, Z, θ

      • TYPE_CHAM: VECT_3D

      • NOM_CHAM - e.g. DEPL

      • NOM_CMP - e.g. DX, DY, DZ

    • [2] 2D tensor field, expects data as follow: XX, YY, ZZ, XY and returns RR, ZZ, θθ, RZ

      • TYPE_CHAM: TENS_2D

      • NOM_CHAM - e.g. SIGM_NOEU

      • NOM_CMP - e.g. SIXX, SIYY, SIZZ, SIXY

    • [3] 3D tensor field, expects data as follow: XX, YY, ZZ, XY, XZ, YZ and returns RR, ZZ, θθ, RZ, Rθ, Zθ

      • TYPE_CHAM: TENS_3D

      • NOM_CHAM - e.g. SIGM_NOEU

      • NOM_CMP - e.g. SIXX, SIYY, SIZZ, SIXY, SIXZ, SIYZ

  • Assignment (AFFE)

    • Exacly One

      • All (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

      • Group of node (GROUP_NO) - (not possible for element data)

    • ORIGINE - e.g. 0.0, 0.0, 0.0

    • AXE_Z - e.g. 0.0, 0.0, 1.0

  • REPERE: CYLINDRIQUE

9.1.11 Extract frequency results of modal analysis to a table

AsterStudy - Output - RECU_TABLE

  • Name: freq

  • Parameter name (NOM_PARA): FREQ

  • CO - link to CALC_MODES

The extraction can be saved as text file, see Output - Text file of table. Or as 2D plot, see 10.6 2D plot with xmgrace.

9.1.12 Extract FFT of response quantities to a table

AsterStudy - Post Processing - REST_SPEC_TEMP

  • Name - specify the name, e.g. dispFFT

  • Result (RESULTAT) - link to the dynamic analysis

  • Method (METHODE) - optinally

    • PROL_ZERO - add zeros the the to the signal

    • TRONCATURE - do not add the zeros and truncate the signal wherever it is.

    • NOM_CHAM (name of the field)

      • DEPL - displacement (this is selected for example)

      • VITE - velocity

      • ACCE - acceleration

AsterStudy - Post Processing - POST_RELEVE_T

  • ACTION

    • Result (RESULTAT) - link to the analysis or other post processing operations

    • Group of node (GROUP_NO) - link to node mesh selection of interest. If not present in the list select group(s) via ’Manual selection’

    • Exacly One

      • TOUT_CMP: Yes (OUI) - extract filed (see NOM_CHAM) in all directions

      • RESULTANTE - define the direction of interest; DX, DY, DZ, DRX, DRY, DRZ

    • OPERATION: EXTRACTION

    • INTITULE - define the name of extraction, e.g. ’displacement’

    • NOM_CHAM - the field where the data will be extracted from

      • DEPL - displacement (this is selected for example)

      • VITE - velocity

      • ACCE - acceleration

    • FORMAT_C - specify which part of the complex number should be considered

      • IMAG - the imaginary part

      • MODULE - the modulus of the complex number (default)

      • REEL - the rreal part

The extraction can be saved as text file, see Output - Text file of table. Or as 2D plot, see 10.6 2D plot with xmgrace.

Specify FREQ for the first parameter name and for example DX for the second one. Title could be ’FFT displacement response’. The x-lable ’Frequency in Hz’ and the y-lable ’Amplitude’ (the modulus of a complex number).

To estimate the maximum frequency, the Nyquist frequency, divide 1 by the time-step dt. For symmetric the half of it. The minimum will be 0.

9.1.13 Extract modal transient results back to physical coordinates

Natural way (whole model), can be costly, if the model is huge or the number of steps is significant! AsterStudy - Post Processing - REST_GENE_PHYS

  • RESU_GENE - link to the transient dynamic analysis in model coordinates

  • NOM_CHAM

    • ACCE

    • DEPL

Efficient way to follow the trajectories or stresses at some points/elements POST_GENE_PHYS

  • RESU_GENE - link to the transient dynamic analysis in model coordinates

  • OBSERVATION

    • At Least One

      • Group of node (GROUP_NO) link to the group of nodes of interest

      • Group of element (GROUP_MA)

    • NOM_CHAM: DEPL

    • NOM_CMP: DX

9.1.14 Extract displacement as a function of time

AsterStudy - Output - RECU_FONCTION

  • Name - for exampe dispf

  • RESU_GENE - link to the analysis in generalized coordinate system, e.g. resharm.

  • NOM_CHAM - specify the field, e.g. DEPL

  • Group of node (GROUP_NO) - link to the node set of interest

  • NOM_CMP - specify the direction, e.g. DX (x direction)

  • Parameter name (NOM_PARA): Time (INST)

AsterStudy - Output - IMPR_FONCTION

  • Format (FORMAT): XMGRACE

  • COURBE

    • FONCTION: link to the displacement function, e.g. dispf

    • MARQUEUR: 0

    • STYLE: 1

  • Filename (UNITE) - for example dispf.eps

  • PILOTE: ’EPS’

  • Title (TITRE) - for example ’Displacement’

  • LEGENDE_X: ’Time in s’

  • LEGENDE_Y: ’Displacement in m’

9.1.15 Extract frequency response curve from harmonic analysis to a function

AsterStudy - Output - RECU_FONCTION

  • Name - for exampe frf

  • RESU_GENE - link to the analysis in generalized coordinate system, e.g. resharm.

  • NOM_CHAM - specify the field, e.g. DEPL

  • Group of node (GROUP_NO) - link to the node set of interest

  • NOM_CMP - specify the direction, e.g. DX (x direction)

AsterStudy - Output - IMPR_FONCTION

  • Format (FORMAT): XMGRACE

  • COURBE

    • FONCTION: link to the frquency response curve function, e.g. frf

    • MARQUEUR: 0

    • STYLE: 1

  • Filename (UNITE) - for example frf.eps

  • PILOTE: ’EPS’

  • Title (TITRE) - for example ’Frequency response curve’

  • LEGENDE_X: ’Frequency in Hz’

9.2 Thermic

Solver calculates nodal temperature field, all other solutions must be specified or demanded.

9.2.1 Flux FLUX_*

AsterStudy - Post Processing - CALC_CHAMP

  • Name - same name as of Analysis to extend the results. or reuse the input object [X]

  • Result (RESULTAT) - link to the Analysis

  • Thermic (THERMIQUE): FLUX_ELGA, FLUX_ELNO, FLUX_NOEU

9.3 Error field ERME_*

AsterStudy - Post Processing - CALC_ERREUR - will also calculate SIGM_ELNO if not present

  • reuse - Name; same name as of Analysis to extend the results.

  • Result (RESULTAT) - link to the analysis or other post processing

  • Option (OPTION)

    • ERME_ELEM - estimator of residual error in mechanics and stationary hydro-mechanics at elements

    • ERME_ELNO - estimator of residual error in mechanics and stationary hydro-mechanics at elements nodes

9.4 Map results to other mesh (TRIA7-TRIA6, QUAD9-QUAD8)

Useful to map result of full quadratic meshes (with centre node) to meshes without the centre node. ParaVis can not handle the centre node.

Optionally if no mesh without the centre node is available, assign additional model as general 3D to map results to unmodified mesh for correct visualisation.

AsterStudy - Model Definition - Assign finite element (AFFE_MODELE )

  • Finite element assignment (AFFE)

    • Exactly One

      • Everywhere (TOUT): Yes (OUI)

      • Group of element (GROUP_MA)

    • Phenomenon (PHENOMENE): Mechanic (MECANIQUE)

    • Modelisation (MODELISATION):

      • 3D - solid (even for for COQUE_3D)

  • Mesh (MAILLAGE) - link to the mesh without the centre node

After assigning the visualization model.

AsterStudy - Pre Analysis - PROJ_CHAMP

  • Result (RESULTAT) - link to the analysis or post-processing results

    • MODELE_1 - link to the model with the mesh with centre node

    • MODELE_2 - link to the model with the mesh without the centre node (e.g. MODELISATION: 3D even for COQUE_3D meshes)

Save result file in format MED to visualize in ParaViS (IMPR_RESU).

10 Output

10.1 Save result file in graphical format MED

AsterStudy - Output - Set output results (IMPR_RESU-MED )

  • Result file location (UNITE) - define the location and the filename of the .rmed-file.

  • Results (RESU)

    • Result (RESULTAT) - link to the analysis or the post processing (CALC_CHAMP)

    • NOM_CHAM - optionally select the fields which sould be extracted only as a subset from the result. If this option is not set all the fields specified in the result or post processing will be extracted.

10.2 Save result file in text format

AsterStudy - Output - Set output results (IMPR_RESU-RESULTAT-ASTER )

  • Result file location (UNITE) - define the location and the filename of the .resu-file.

  • Format (FORMAT): Result (RESULTAT)

  • Results (RESU)

    • Result (RESULTAT) - link to the analysis or the post processing (CALC_CHAMP)

    • NOM_CHAM - optionally select the fields which sould be extracted only as a subset from the result. If this option is not set all the fields specified in the result or post processing will be extracted.

Extraction is maybe better for doing some post processing like plotting specific data.

10.3 Save maximum value of a field

For example maximum stress values at Gauss points

AsterStudy - Output - Set output results (IMPR_RESU-RESULTAT-ASTER )

  • Result file location (UNITE) - define the location and the filename of the result file.

  • Format (FORMAT): Result (RESULTAT)

  • Results (RESU)

    • Result (RESULTAT) - link to the analysis or the post processing (CALC_CHAMP)

    • NOM_CHAM - SIGM_ELGA or SIEQ_ELGA

    • VALE_MAX: OUI

10.4 Extract data from the result as function

AsterStudy - Output - RECU_FONCTION

  • Exacly One

    • RESU_GENE (generalized results) - link to the analysis with modal coordinate system

    • Result (RESULTAT) - linkt to the analysis or a post proccessing

  • NOM_CHAM - the name of the data field, e.g.

    • DEPL (displacement),

    • VITE (velocity),

    • ACCE (acceleration)

  • Group of node (GROUP_NO) - the spot where the data should be picked from

  • NOM_CMP - the specific component of the data field, e.g. DX (x direction)

The extraction can be save as 2D plot, see 10.6 2D plot with xmgrace

10.5 Text file of table

Optionally filter out (remove) part of the table first.

AsterStudy - Functions and Lists - CALC_TABLE

  • reuse - Name; same name of the table, e.g. from POST_RELEVE_T

  • TABLE - link to the table, e.g. from POST_RELEVE_T

  • ACTION

    • OPERATION: FILTRE

    • NOM_PARA - e.g. filter out node names: NOEUD

    • CRIT_COMP

      • REGEXP - using regular expression

    • VALE_K (string value) - e.g. all nodes starting with NM should be filtered out (removed): N[^M]

Write table

AsterStudy - Output - IMPR_TABLE

  • TABLE - link to the table, e.g. disp, accel, freq, … (POST_RELEVE_T, MACR_LIGN_COUPE)

  • Filename (UNITE) - define the location and the filename of the table file, e.g. displacement, acceleration, freq, …

10.6 2D plot with xmgrace

Requirements grace must be installed.

  • Arch Linux: paru -S grace

Labels and title can have xmgrace text style escapes, like \S for start superscript \N for back to normal.

Files can be opened with: xmgrace FILE

10.6.1 2D plot of table

AsterStudy - Output - IMPR_TABLE

  • TABLE - link to the table (e.g. POST_RELEVE_T, MACR_LIGN_COUPE)

  • Filename (UNITE) - define the location and the filename of the plot file (.agr if not other specified via PILOTE).

  • Format (FORMAT): XMGRACE

  • Parameter name (NOM_PARA) - can be one of the columns of the file

    • [0] - the x axis, e.g. INST (time) or ABSC_CURV (curvy line axis)

    • [1] - the y asix, e.g. DX (direction x, the values come from the table extraction) or VMIS

  • Title (TITRE) - the plot title, e.g. Displacement response

  • PILOTE - the file format / extension, e.g. EPS.

  • STYLE - 1 for continues line

  • MARQUEUR - 0 for no marker for points

  • BORNE_X - the x limits, lower and upper limit

  • BORNE_Y - the y limits, lower and upper limit, probably not useful because the deflection is unknown

  • GRILLE_X - the grid sizing / spacing in x direction

  • LEGENDE_X - x-axis lable, e.g. Time t in s

  • LEGENDE_Y - y-axis lable, e.g. Deflection u in m

Note BORNE_X and GRILLE_X will be ignored when the y counterpart is not defined. At least in the version while writing this article.

10.6.2 2D plot of function

AsterStudy - Output - IMPR_FONCTION

  • Format (FORMAT): XMGRACE

  • COURBE (curve)

    • FONCTION - link to the function (e.g. LIRE_FONCTION, RECU_FONCTION)

    • STYLE - 1 for continues line

    • MARQUEUR - 0 for no marker for points

  • Filename (UNITE) - define the location and the filename of the .agr-file.

  • Title (TITRE) - title of graph

  • LEGENDE_X - x-axis label

  • LEGENDE_Y - y-axis label

10.6.3 2D plot of two functions with same argument

AsterStudy - Output - IMPR_FONCTION

  • Format (FORMAT): XMGRACE

  • COURBE (curve)

    • FONC_X - link to the first function (e.g. displacement in x direction DX via RECU_FONCTION)

    • FONC_Y - link to the second function (e.g. stress in x direction SIXX via RECU_FONCTION)

    • STYLE - 1 for continues line

    • MARQUEUR - 0 for no marker for points

  • Filename (UNITE) - define the location and the filename of the AGR-file.

  • Title (TITRE) - title of graph, second function vs first function at selected spot.

  • LEGENDE_X - x-axis lable

  • LEGENDE_Y - y-axis lable

10.7 Save and visualize local coordinates

Useful for structural elements.

AsterStudy - Output - Set output results (IMPR_RESU-MED )

  • Result file location (UNITE) - define the location and the filename of the .rmed result file

  • Concept (CONCEPT)

    • [0]

      • Structural element characteristic (CARA_ELEM)

      • Model (MODELE)

      • REPERE_LOCAL - ELNO

  • Results (RESU)

    • [0]

      • Result (RESULTAT) - link to the analysis or post processing (CALC_CHAMP)

ParaVis open .rmed file

  • Filters - Mechanics - ELNO filed To Surface

  • Filters - Common - Glyph (one for x, one for y and one for z)

    • Properties

      • Active Attributes

        • Scalars - None

        • Vectors - RepLocal_X (RepLocal_Y, RepLocal_Z)

      • Masking

        • Glyph Mode - All Points

    • Display

      • Representation - Surface

      • Coloring - Edit to e.g. red (yellow, green)

10.8 Save and visualize beam cross-section results at Gauß points

Non-liear analysis is necessary to get informations at Gauß points. Only Gauß point information are available with this command.

AsterStudy - Output - IMPR_RESU_SP (sub-points)

  • Result (RESULTAT) - link to the non-linear elastic analysis, linear elastic analysis will not work

  • Group of element (GROUP_MA) - link to the group of elements where the results should be extracted from, e.g. the beam group

  • Results (RESU)

    • [0]

      • NOM_CHAM

        • SIEF_ELGA

      • NOM_CMP

        • SIXX

    • […]

      • NOM_CHAM

        • SIEQ_ELGA

        • SIGM_ELGA

        • VARI_ELGA

  • Filename (UNITE) - specify the location and the name of the .tar.gz output file, e.g. section.tar.gz

After solving extract the archive and open the file of interest inside ParaVis, e.g. resnonl-SIEF_ELGA-0001-0001.vtu.

To see a scale block diagram as arrows add Filter - Common - Glyph.

  • Scaling: Scale Mode: scalar

  • Masking: Glyph Mode: All Points

To interpolate a Volume from the data point add Filter - Alphabetical - Delaunay 3D.

11 ParaVis

11.1 Install plug-ins

Copy the plug-in script file in $PARAVIS_ROOT_DIR/bin/salome/Macro.

11.2 Display mesh

  • Coloring - e.g. Solid Color

  • Display - Representation: Surface With Edges

11.3 Display data on element nodes and Gauss points (stress)

Filters - Mechanics

  • ELGA field To Surface

  • ELNO field To Surface

  • Apply

Coloring - ..._ELGA or ..._ELNO

11.4 Deflection figure

On MED file

  • add Filters - Common - Warp By Vector

For stuctural elements GenerateVectors and if DEPL field has other components, create a custom field only with displacement components

  • add Filters - Common - Calculator

    • Result Array Name: DEPL

    • Equation: \*DEPL_DX*iHat+DEPL_DY*jHat

11.5 Display min/max value

Edit - Find Data…

  • Find: Point(s)

  • from

  • condition: is max, is min

  • Run Selection Query

  • Selection Display Properties

    • Point Labels - set the field

11.6 Display custom values on mouse cursor

  • small icon at the top of the graphics window: Hover Points On (red point and a questionmark)

11.7 Display custom values on model

View - Windows - Selection Display Inspector

  • Point Label - e.g. resther_TEMP

  • small icon at the top of the graphical window: Interactive Select Points On (three point mesh and a cursor pointer)

  • click on the model to create point values

for transient calculations also helpful Edit - Find Data… - the window will show selected points - Plot Selection Over Time

11.8 Display values alonge line

Note: To display stresses, SIEGM_NOEU and or SIEQ_NOEU must be selected in AsterStudy to have point data.

On MED file - Filter: Plot Over Line (to update parameters, the Line Chart View must be active. Display view of XYChartRepresentation)

  • X Axis Parameter

    • X Array Name: arc_length

  • Series Parameter - select the parameters to be plotted

11.9 Display principle stress vectors

Requirements: SIEQ field with PRIN_i and VECT_i_j components (i=[1..3], j=[X..Z]).

Note: Generate vectors does not create vectors for principle stresses! Because the first three entries of the vector components of SIEQ_* field are VMIS, TRESCA, PRIN_1. This is meaningless. Therefor one has to create its own vectors using PRIN_* and VECT_*_*.

On RMED file - Filter: ELNO field To Surface

  • Filter: Extract Components

    • Input Array: reslin__SIEQ_ELNO

    • Output Array Name: PRIN_1_vector_norm (for example)

    • Comonents: VECT_1_X, VECT_1_Y, VECT_1_Z (these are normalized vectors of the first principle stresses)

  • Filter: Calculator

    • Result Array Name: PRIN_1_vector

    • Equation: reslin__SIEQ_ELNO_PRIN_1*(reslin__SIEQ_ELNO_VECT_1_X*iHat+reslin__SIEQ_ELNO_VECT_1_Y*jHat+reslin__SIEQ_ELNO_VECT_1_Z*kHat)

    • Apply

or

On RMED file - Filter: ELNO field To Surface

  • Filter: Calculator

    • Result Array Name: PRIN_1_vector

    • Equation: reslin__SIEQ_ELNO_PRIN_1*(reslin__SIEQ_ELNO_VECT_1_X*iHat+reslin__SIEQ_ELNO_VECT_1_Y*jHat+reslin__SIEQ_ELNO_VECT_1_Z*kHat)

    • Apply

    • Display: PRIN_1_vector: Magnitude, X, Y, Z

  • Filter: Glyph

    • Properties

      • Glyph Source: Glyph Type: Arrow

      • Active Attributes

        • Scalars: None

        • Vectors: PRIN_1_vector

      • Orientation: Orient: checked

      • Scaling

        • Scale Mode: vector

        • Scale Factor: (reset using curent data values)

      • Masking

        • Glyph Mode

          • All Points

          • Every Nth Point

            • Stride: <#> (1 is the same as All Points)

    • Display

      • either one

        • GlyphVector: Magnitude

        • reslin__SIEQ_ELNO: PRIN_1

ParaVis macro PRIN_i_vectors.py
# -*- coding: utf-8 -*-
#
# Since it is not straightforward to display the principal stress vectors in
# Paravis from a SIEQ_ELGA field, I have written a macro that does the job.
#
# To install it, copy the file PRIN_i_vectors.py in
#  $PARAVIS_ROOT_DIR/bin/salome/Macro
#
# To use it, open a med file that must contain a SIEQ field with PRIN_i and
# VECT_i_j components i=[1..3], j=[X..Z]
#
# If the field is on ELGA, call the filter GaussPoints.
# In the pipeline, select the med file (or the result of the GaussPoints filter)
# and click on PRIN_i_vectors in the macros toolbar.
#
# Known bug in investigation: After a second launch of the macro, the scalar bar
# remains visible when we hide the representation in GUI. This issue is not
# specific to this macro, but to scalar bar management in python scipts.
# The color map used in the script is the default Paraview "Diverging". It can
# be changed in the beginning of the file to "HSV" for those who are used to
# rainbow scalar maps.
#
# @copyright: 2014 Christophe Bourcier aka cbourcier
# script PRIN_i_vectors.py: https://www.code-aster.org/forum2/attachment.php?item=6706
# test med file table_sieq.med: https://www.code-aster.org/forum2/attachment.php?item=6707
# result example PRIN_i_vectors.png: https://www.code-aster.org/forum2/attachment.php?item=6708
# presentation: https://www.code-aster.org/forum2/viewtopic.php?id=19405
# previous discussion: http://salome-platform.org/forum/forum_10/859084413#546296324

try: paraview.simple
except: from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()

import sys

# color bar type
color_bar = "Diverging"
#color_bar = "HSV"

# color of the min value for Diverging
r=0.137255
g=0.239216
b=0.709804
# color of the max value for Diverging
r2=0.67451
g2=0.141176
b2=0.12549

#table_sieq_med = MEDReader( FileName='/opt/salome/scripts/table/table_sieq.med' )
source = GetActiveSource()

## check if it is needed to call GaussPoints() filter on the active source
#if "ELGA" in source.CellData.keys():
  ## PB: no field exists after applying this filter... something is wrong
  ## => Call GaussPoints in GUI
  #GaussPoints1 = GaussPoints()

# find among point-centered 6-components arrays, the one with the right components
sieq_array_name = None
comps_to_find = ["PRIN_1", "PRIN_2", "PRIN_3",
                 "VECT_1_X", "VECT_1_Y", "VECT_1_Z",
                 "VECT_2_X", "VECT_2_Y", "VECT_2_Z",
                 "VECT_3_X", "VECT_3_Y", "VECT_3_Z"]
comps_found = 0
for name, array in source.PointData.items():
  nb_comp = array.GetNumberOfComponents()
  if nb_comp >= 6 :
    for i in xrange(nb_comp):
      comp_name = array.GetComponentName(i)
      if comp_name in comps_to_find:
        comps_found+=1
    if comps_found == len(comps_to_find):
      sieq_array_name = array.GetName()
      print "All required components found in ", sieq_array_name
      break

if sieq_array_name is None:
  raise Exception("To use this macro, a point field with the following components is required: ", comps_to_find)

## Remove previous representations and scalar bars
def removeReps():
  reps = GetRenderView().Representations
  for rep in reps:
    try:
      # Hide scalar bar
      rep.Enabled=0
    except:
      # Hide representation
      rep.Visibility=0
      pass
  Render()
  pass

for i in xrange(3, 0, -1):
  removeReps()

  # Create a vector field for each principal stress direction, with its magnitude in factor.
  # See http://salome-platform.org/forum/forum_10/859084413#546296324
  Calculator1 = Calculator()

  comp_name = "PRIN_%i"%i
  calc_result_name = '%s_vector'%comp_name

  Calculator1.Function = '%s_PRIN_%i*(%s_VECT_%i_X*iHat+%s_VECT_%i_Y*jHat+%s_VECT_%i_Z*kHat)'%(sieq_array_name, i, sieq_array_name, i, sieq_array_name, i, sieq_array_name, i)
  Calculator1.ResultArrayName = calc_result_name

  RenameSource("Calc_%s"%comp_name, Calculator1)

  # Get the min/max of the field
  mini, maxi = Calculator1.PointData.GetArray(calc_result_name).GetComponentRange(-1)

  # Set the scalar map colors
  if color_bar == "HSV":
    rgbPoints = [mini, 0, 0, 1, maxi, 1, 0, 0]
  else:
    # Diverging
    rgbPoints = [mini, r, g, b, maxi, r2, g2, b2]
  lookup_table = GetLookupTableForArray( calc_result_name, 3, VectorMode='Magnitude', RGBPoints = rgbPoints, ColorSpace=color_bar)

  # Create glyphs (that are vectors) and set their scale factor
  Glyph1 = Glyph( GlyphType="Arrow", GlyphTransform="Transform2", SetScaleFactor = 1./maxi)

  # Show the glyphs with the right colors
  GlyphRepresentation = Show(ColorArrayName = "GlyphVector", LookupTable = lookup_table)

  RenameSource("Glyph_%s"%comp_name, Glyph1)

  # Create scalar bar with the right min/max
  scalar_bar = CreateScalarBar( ComponentTitle='', Title=comp_name, Enabled=1, LookupTable=lookup_table)
  GetRenderView().Representations.append(scalar_bar)

  Render()

  # Zoom fit all
  GetRenderView().ResetCamera()
  Render()

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser(1)

11.10 Display local axis vectors of beams and shells

Each local vector (X, Y and Z) is written in a separate field (CARA_.REPLO_1, CARA_.REPLO_2 and CARA_.REPLO_3). Open the resu med file.

  • In the Properties tab, untick “No_Group”, and untick all the fields except CARA_.REPLO_1, CARA_.REPLO_2 and CARA_.REPLO_3. Click on Apply.

  • To be able to display the glyphs at the center of the cells, call the filter Cell Centers.

  • In the pipeline, select CellCenters, call the filter Glyph.

  • In the Properties tab, select Vectors: CARA_.REPLO_1.

  • In the display tab, select Solid Color. Click on “Set Solid Color” and choose red.

  • Repeat the three last steps for CARA_.REPLO_2 in yellow and CARA_.REPLO_3 in green.

ParaVis plugin local_base_vectors.py
# -*- coding: utf-8 -*-
#
# This is a macro to display the local base vectors for beams and shells as
# stored by IMPR_RESU/CONCEPT/REPERE_LOCAL='OUI'. More information in
# http://www.code-aster.org/V2/spip.php?article621
#
# To install it, copy the file local_base_vectors.py in
# $PARAVIS_ROOT_DIR/bin/salome/Macro.
#
# To use it, open the med file written with REPERE_LOCAL="OUI". Before clicking
# on Apply, untick OnCell/No_Group (because the fields are defined on all the
# groups => the cells with no group have no value).
#
# In the pipeline, select the med file and click on local_base_vectors in the
# macros toolbar.
#
# @copyright: 2014 Christophe Bourcier aka cbourcier
# script local_base_vectors.py: https://www.code-aster.org/forum2/attachment.php?item=6709
# test med file table_repere_local.med: https://www.code-aster.org/forum2/attachment.php?item=6710
# result example local_base_vectors.png: https://www.code-aster.org/forum2/attachment.php?item=6711
# presentation: https://www.code-aster.org/forum2/viewtopic.php?id=19409
# previous discussion: http://salome-platform.org/forum/forum_10/859084413#546296324

try: paraview.simple
except: from paraview.simple import *
paraview.simple._DisableFirstRenderCameraReset()

import sys

# Colors of each glyph, same colors as the global base in Paraview 3D viewer
d_colors = {1: [1.0, 0.0, 0.0], # X: red
            2: [1.0, 1.0, 0.0], # Y: yellow
            3: [0.0, 1.0, 0.0]} # Z: green

# Scale factor for glyphs, factor of the bounding box dimensions
scale_factor = 1./10

source = GetActiveSource()

# Pass cell data to cell centers, since glyphs can only be applyed on points
CellCenters1 = CellCenters()

# Guess an absolute scale factor form the bounding box dimensions
bounds = source.GetDataInformation().DataInformation.GetBounds()
side = [bounds[1] - bounds[0], bounds[3] - bounds[2], bounds[5] - bounds[4]]
length = min(side)
scale = length*scale_factor

# For each 3 directions
for i in xrange(1, 4):
  # Find the field for the i-th direction
  for name, array in CellCenters1.PointData.items():
    if name.endswith("REPLO_%i"%i):
      # Create glyphs (that are vectors) and set their scale factor
      Glyph1 = Glyph(Input=CellCenters1, Vectors = ['POINTS', name], ScaleMode = 'off', SetScaleFactor = scale)

      # Show the glyphs with the right colors
      color = d_colors[i]
      GlyphRepresentation = Show(DiffuseColor = color)

      RenameSource("Glyph_%s", Glyph1)

      Render()

if salome.sg.hasDesktop():
  salome.sg.updateObjBrowser(1)

11.11 Display and animate modes

On MED file

  • set under properties

    • GenerateVectors

    • Mode option.

  • add Filter ’Normal modes animation (real)’

  • at the Animation View add the NormalModesAnimation# (+ sign)

  • set End Time (small value) and No. Frames

  • press Play

11.12 Animate static displacement

On MED file

  • add Filter ’Warp By Vector’

  • at the Animation View add the WarpByVector#

  • press Play

11.13 Mirror symmetrical model

On MED file

  • add Filter ’Reflect’

    • Plane: X Min, Y Min, Z Min, X Max, Y Max, Z Max, X, Y, Z

11.14 Revolve axisymmetrical model

The paraview dataset from code_aster is of type unstructured grid. To be able to revolve a 2D model the filter ’Extract Surface’ is needed. The filter converts the grid to a PolyData object. Important; the revolve axis is restricted to the z-axis. Filter ’Transform’ to rotate and translate as needed. For the revolve, the filter to use is ’Rotational Extrusion’.

11.15 Stress tensor in cylindrical coordinate system

\[\begin{split}\sigma = \begin{bmatrix} \sigma_{xx} & \sigma_{xy} & \sigma_{xz} \\ \sigma_{yx} & \sigma_{yy} & \sigma_{yz} \\ \sigma_{zx} & \sigma_{zy} & \sigma_{zz} \end{bmatrix}\end{split}\]
11.15.1 Rotation about x-axis, [x,y,z] -> [x,r,theta]
\[\begin{split}T_x(\theta) = \begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix}\end{split}\]
\[\begin{split}\sigma_\circ = T^T \sigma \, T = \begin{bmatrix} \sigma_{xx} & \sigma_{xr} & \sigma_{x\theta} \\ \sigma_{rx} & \sigma_{rr} & \sigma_{r\theta} \\ \sigma_{\theta x} & \sigma_{\theta r} & \sigma_{\theta\theta} \end{bmatrix}\end{split}\]
\[\sigma_{xr} = \sigma_{xy}\cos\theta + \sigma_{xz}\sin\theta\]
\[\sigma_{x\theta} = -\sigma_{xy}\sin\theta + \sigma_{xz}\cos\theta\]
\[\sigma_{rr} = \frac{\sigma_{yy}\cos(2\theta)}{2} + \frac{\sigma_{yy}}{2} + \frac{\sigma_{yz}\sin(2\theta)}{2} + \frac{\sigma_{zy}\sin(2\theta)}{2} - \frac{\sigma_{zz}\cos(2\theta)}{2} + \frac{\sigma_{zz}}{2}\]
\[\sigma_{r\theta} = - \frac{\sigma_{yy}\sin(2\theta)}{2} + \frac{\sigma_{yz}\cos(2\theta)}{2} + \frac{\sigma_{yz}}{2} + \frac{\sigma_{zy}\cos(2\theta)}{2} - \frac{\sigma_{zy}}{2} + \frac{\sigma_{zz}\sin(2\theta)}{2}\]
\[\sigma_{\theta\theta} = - \frac{\sigma_{yy}\cos(2\theta)}{2} + \frac{\sigma_{yy}}{2} - \frac{\sigma_{yz}\sin(2\theta)}{2} - \frac{\sigma_{zy}\sin(2\theta)}{2} + \frac{\sigma_{zz}\cos(2\theta)}{2} + \frac{\sigma_{zz}}{2}\]

Filter - Alphabetical - Python Calculator

  • Note: coordsX/Y/Z can be accessed with points[:,0], points[:,1] and points[:,2]

  • Expession: arctan2(points[:,2],points[:,1])

  • Array Association: Point Data

  • Array Name: theta

Following filters are related to theta.

Filter - Common - Calculator

  • Attibute Mode: Point Data

  • Result Array Name: sigma_xr

  • Expression: reslin__SIGM_NOEU_SIXY*cos(theta) + reslin__SIGM_NOEU_SIXZ*sin(theta)

Filter - Common - Calculator

  • Attibute Mode: Point Data

  • Result Array Name: sigma_xtheta

  • Expression: -reslin__SIGM_NOEU_SIXY*sin(theta) + reslin__SIGM_NOEU_SIXZ*cos(theta)

11.15.2 Rotation about y-axis, [x,y,z] -> [theta,y,r]
\[\begin{split}T_y(\theta) = \begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix}\end{split}\]
\[\begin{split}\sigma_\circ = T^T \sigma \, T = \begin{bmatrix} \sigma_{\theta\theta} & \sigma_{\theta y} & \sigma_{\theta r} \\ \sigma_{y\theta} & \sigma_{yy} & \sigma_{yr} \\ \sigma_{r\theta} & \sigma_{ry} & \sigma_{rr} \end{bmatrix}\end{split}\]
11.15.3 Rotation about z-axis, [x,y,z] -> [r,theta,z]
\[\begin{split}T_z(\theta) = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}\end{split}\]
\[\begin{split}\sigma_\circ = T^T \sigma \, T = \begin{bmatrix} \sigma_{rr} & \sigma_{r\theta} & \sigma_{rz} \\ \sigma_{\theta r} & \sigma_{\theta\theta} & \sigma_{\theta z} \\ \sigma_{zr} & \sigma_{z\theta} & \sigma_{zz} \end{bmatrix}\end{split}\]