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;
length of line is limited to 80 characters,
only
[A-Z][a-z]_for keyword and names, if not string[a-z]is converted to[A-Z]space is a separator
%for comment line
For the command file;
syntax related to the language Python, allowing to include instructions of this language
#for comment lineThe orders must start in column 1, unless they belong to an indent block
1.5 Open and run an existing test case¶
Test cases can be found:
at https://www.code-aster.org/V2/doc/default/en/index.php?man=V
Linux per user installation:
$HOME/salome_meca/V2017.0.2/tools/Code_aster_stable-v134_smeca/share/aster/testsSalome-Meca for Windows:
...\sm-2017-w64-1-0\PRODUCTS\code_aster\13.4\share\aster\tests
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
Dflag)[name].comm - this is the command file,
LUis 1[name].med - this is the mesh file, first default
LUis 20…
open or create different empty files (optionally), used for output (the astk
Rflag)./[name].mess - this is the output message file,
LUis 6./[name].rmed - this is the result file, default
LUis 80./[name].dat - this is the table file
…
change unites (
LU) according to the comm filesave 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 shellastk
Set ’Base path’ - this is the working directory
open different input files (the astk
Dflag)[name].comm - this is the command file,
LUis 1[name].med - this is the mesh file, first default
LUis 20[name].distr - this is the parametric set file,
LUis 0
open or create different empty files, used for output (the astk
Rflag)./[name].rmed - this is the result file, default
LUis 80./[name].mess - this is the output message file,
LUis 6./[name].dat - this is the table file
./repe - this is the solution folder where all combination file are written to (remove the
Dflag if the folder does not exist now)
change unites (
LU) according to the comm fileOptions - Run options:
distrib =distrib: Yes
Ok
save the astk environment
optionally check the
interactive follow-upclick 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 filesTYPEASCII- (default) e.g. a table result fileBINARY- e.g. for MED filesLIBRE- undefined, could be both; ascii or binary
ACTIONASSOCIER(default) open file (to read or write)
ACCESNEW- (default) an output (result) fileOLD- an input (data) fileAPPEND- 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. 80ACTIONLIBERER- 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 analysisMODELE_1- link to the thermal modelMODELE_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-3DHypothesis - click on the gear symbol and choose for example
NETGEN 3D ParametersOK
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-3DHypthesis - click on the gear symbol and choose for example
NETGEN 3D ParamtersOK
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-3DHypthesis - click on the gear symbol and choose for example
NETGEN 3D ParamtersOK
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_NOGroup of element (
GROUP_MA) - select group(s) of elements. For each group of elements, one creates a group of nodes. IfNOM(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_MAAll (
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_QUADAt 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_7PREF_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_9PREF_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 modifyMAILLAGE_NP1- new mesh name (8 chars max and unused)ADAPTATIONRAFFINEMENT_UNIFORME- only refinement, no coarseningDERAFFINEMENT_UNIFORME- only coarsening, no refinementRIEN- no changes
3.12.2 Locally meshing refinement¶
AsterStudy - Post Processing - MACR_ADAP_MAIL
MAILLAGE_N- link to the mesh to modifyMAILLAGE_NP1- new mesh name (8 chars max and unused)ADAPTATIONRAFF_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 AnalysisOption (
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 modifyMAILLAGE_NP1- new mesh name (8 chars max and unused)ADAPTATIONRAFF_DERA- refinement or coarseningRAFFINEMENT- only refinement, no coarseningDERAFFINEMENT- 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 adaptationERME_ELEM
NOM_CMP- field component to control the adaptation, if no components are specified, all are usedERREST- total error estimate
Exacly One (for
RAFFINEMENT)CRIT_RAFF_PE- criterion fraction of element to refine in [0, 1], e.g. 0.1CRIT_RAFF_ABS- criterion absolute value of the field to refine elementCRIT_RAFF_REL- criterion relative value [0, 1] of the field to refine elementCRIT_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:RAFFINEMENTMAILLAGE_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}\).
The estimated end element size \(h\ti{e}\)
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) meshTYPE_DISCONTINUITE:INTERFACEDEFI_FISSFORM_FISS:ELLIPSEDEMI_GRAND_AXE- define the semi-major axis, for a circle the radiusDEMI_PETIT_AXE- define the semi-major axis, for a circle the radiusCENTRE- 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 modifyMAILLAGE_NP1- new mesh name (8 chars max and unused)ADAPTATION:RAFFINEMENTCHAM_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 diameterADD_CHAM[0] calculate the element diameters for the whole mesh
CHAM_CAT:DIAMETRECHAM_GD- name for the field, e.g. diameter
[1] calculate the element quality
CHAM_CAT:QUALITECHAM_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
1D
CABLE- SEG2 - cable2D_BARRE- SEG2 - bar in xy-planeBARRE- SEG2 - barPOU_D_E- SEG2 - straight Euler–Bernoulli beam, significant slendernessPOU_D_EM- SEG2 - straight multifibre beam, significant slendernessPOU_D_T- SEG2 - straight Timoshenko beam, small slendernessPOU_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 slendernessPOU_C_T- REMOVED! - SEG2 - curved Timoshenko beam, small slendernessTUYAU_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 modelD_PLAN- TRIA3,6 QUAD4,8,9 - 2d plate, plane strain modelDKT- 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 thicknessQ4G(Q4:math:gamma) - QUAD4 - Reissner plate with transverse energy of shearing in elasticity, but with another interpolation that for modeling DSTQ4GG- QUAD4 - dedicated to thick Reissner platesCOQUE_3D- TRIA7 QUAD9 - 3D shell formulation (shell is thick and significantly curved)MEMBRANE- TRIA3,6,7 QUAD4,8,9
3D
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
DISCRETorDISCRET_2D[0] stiffness
CARAK_TR_D_L- stiffness translation and rotation diagonal matrix line (1D) element, 3D 6 values, 2D 3 valuesK_TR_D_N- stiffness translation and rotation diagonal matrix node (0D) element, 3D 6 values, 2D 3 valuesK_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 valuesK_T_D_N- stiffness translation diagonal matrix node (0D) element, 3D 3 values, 2D 2 valuesK_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
CARAA_TR_D_L- damping translation and rotation diagonal matrix line (1D) element, 3D 6 values, 2D 3 valuesA_TR_D_N- damping translation and rotation diagonal matrix node (0D) element, 3D 6 values, 2D 3 valuesA_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 valuesA_T_D_N- damping translation diagonal matrix node (0D) element, 3D 3 values, 2D 2 valuesA_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
CARAM_TR_D_L- mass translation and rotation diagonal matrix line (1D) element, 3D 4 values, 2D 4 valuesM_TR_D_N- mass translation and rotation diagonal matrix node (0D) element, 3D 10 values, 2D not availableM_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 valueM_T_D_N- mass translation diagonal matrix node (0D) element, 3D 1 value, 2D 1 valueM_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 withCALC_MATR_ELEM. See testSDLD313and 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).
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
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).
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
K_T_N or A_T_N with SYME='OUI'. 3 values in 2D (x,y), 6 values in 3D
(x,y,z).
with SYME='NON'. 4 values in 2D (x,y), 9 values in 3D (x,y,z).
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).
with SYME='NON'. 16 values in 2D (x1,y1,x2,y2), 36 values in 3D
(x1,y1,z1,x2,y2,z2).
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).
with SYME='NON'. 9 values in 2D (x,y,rz), 36 values in 3D (x,y,z,rx,ry,rz).
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).
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).
M_T_D_N with SYME='OUI'. 1 value in 2D and 3D (x,y,z): 1 mass value \(m\).
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).
where
M_T_N with SYME='OUI'. 3 values in 2D (x,y), 6 values in 3D (x,y,z).
with SYME='NON'. 4 values in 2D (x,y), 9 values in 3D (x,y,z).
M_TR_N with SYME='OUI'. 6 values in 2D (x,y,rz), 21 values in 3D (x,y,z,rx,ry,rz).
with SYME='NON'. 9 values in 2D (x,y,rz), 36 values in 3D (x,y,z,rx,ry,rz).
M_T_L with SYME='OUI'. 10 values in 2D (x1,y1,x2,y2), 21 values in 3D (x1,y1,z1,x2,y2,z2).
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
M_T_L with SYME='NON'. 16 values in 2D (x1,y1,x2,y2), 36 values in 3D (x1,y1,z1,x2,y2,z2).
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_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).
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).
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):Mechanic
0D
Mesh (
MAILLAGE)
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_NValue (
VALE): 1, 0, k - specify the stiffness value for the spring elementGroup of element (
GROUP_MA) - link to the spring element group
[0]
CARA:M_T_D_NValue (
VALE): 0, 0, 0 - no mass for the spring elementGroup 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_NValue (
VALE) - specify the mass value for the mass elementGroup 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_NValue (
VALE): 0, 0, 0Group 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-sectionCARAR- radiusEP- 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-sectionCARAEither square cross-section
H- square edge lengthEP- square thickness
Or generall rectangle cross-section
HY- edge length in local y directionHZ- edge length in local z directionEPY- thickness in local y directionEPZ- 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-sectionCARA:A- areaValue (
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:CERCLECARAR- radiusEP- 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-sectionCARAEither square cross-section
H- square edge lengthEP- square thickness
Or generall rectangle cross-section
HY- edge length in local y directionHZ- edge length in local z directionEPY- thickness in local y directionEPZ- 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:GENERALECARAAArea.IYPrincipal Geometrical Moment of Inertia compared to GY.IZPrincipal Geometrical Moment of Inertia compared to GZ.JXTorsion Constant.RYDistance from reference of beam section to the centroid in y direction.RZDistance from reference of beam section to the centroid in z direction.AYShear Coefficient of GY.AZShear Coefficient of GZ.
Value (
VALE) - define the values of all the parameters
Model (
MODELE) - link to the modelORIENTATIONCARA: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 nodeTABLE_CARA: Yes (OUI) - With this option is present, the produced table contains only the parameters useful toAFFE_CARA_ELEM.NOM(Name) - define a name for the section, e.g.section. Useful toAFFE_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:GENERALETABLE_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_TABLETABLE- 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
SECTIONTOUT_SECT: Yes (OUI) - the whole section given withMAILLAGE_SECTGROUP_FIBRE- the name for the fibre group, e.g. concf for concrete fibreMAILLAGE_SECTCOOR_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.
FIBREGROUP_FIBRE- the name for the fibre group, e.g. rf for reinforcement fibresValue (
VALE) - each reinforment needs three parameters, x location, y location and the gemetrical parameter like diameter, the type isspecified withCARA.[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 reinforcementsDIAMETRESURFACE
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 exampleCARA:HY- height, along local y-axisHZ- width, along local z-axis
Value (
VALE) - the corresponding values for the parameters
MULTIFIBREGroup 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 thePOUTRE-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 modelORIENTATIONCARA: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. concfMaterial (
MATER) - link to the material definitionRELATION: Elastic (ELAS) - orMAZARS, …
[1] for example for the reinforcement and other fibres (e.g. steel
RELATOIN:ELASorVMIS_CINE_GC, …)
GEOM_FIBRE- link to the fibre definitionMATER_SECT- link the material for theSECTIONthe general matrix, e.g. concrete
AsterStudy - Material - Assign a material (AFFE_MATERIAU )
Model (
MODELE) - link to the modalMaterial 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;
Q4GGnote 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
DKTandDKTG(Discrete Kichhoff) (including quandrangluar elements) are based on the theory of Hencky-Coils-Kirchhoff, i.e. without transverse shearingelements
DSTandQ4G(Discrete Shear) are based on the theory of Reissner, i.e. with transverse shearing.Q4Guses 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 |
|||
|
|
|
linear and non-linear |
w/o shear |
|
|
|||
|
|
|
linear and non-linear |
w/o shear |
|
|
|||
|
|
|
linear |
w shear |
|
|
|||
|
|
|
linear |
w shear |
|
|
|
linear |
thick plate |
|
|
|||
shells |
curved |
|||
|
|
linear and non-linear |
||
|
linear and non-linear |
|||
|
|
linear, revolution axis 0Y |
||
membrane |
||||
|
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
linear |
||
|
||||
|
|
|||
|
||||
|
||||
|
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_MAILLEExacly 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 nodesTRIA6_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 usedCOQUE_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) meshTYPE_DISCONTINUITE:INTERFACEDEFI_FISSFORM_FISS:ELLIPSEDEMI_GRAND_AXE- define the semi-major axis, for a circle the radiusDEMI_PETIT_AXE- define the semi-major axis, for a circle the radiusCENTRE- 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 modelFISSURE- 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 beforeModelisation (
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_MODELEofPOST_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):MEDResults (
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_Fbehavior 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_FONCTIONand using both in the analysisSTAT_NON_LINEviaEXCIT:CHARGEas f andFONC_MULTas g(t).
AsterStudy - Function and Load - DEFI_FONCTION
Parameter name (
NOM_PARA) - code_aster parameter (not a custom user parameter)ABSC_CURV- curvilinear abscissaDX- displacement along XDY- displacement along YDY- displacement along ZDRX- rotation around XDRY- rotation around YDRZ- rotation around ZEPSI- strainINST- timeSIGM- stressTEMP- temperatureX- coordinate XY- coordinate YZ- 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 valuesDEFI_LIST_REEL. function values seeVALE_FONC.List of Y-coordinate (
VALE_FONC) - link to an array of function valuesDEFI_LIST_REEL, together withVALE_PARAto define corresponding abscissa values.
X-coordinate (
ABSCISSE) - abscissa values, function values seeORDONNEE.Y-coordinate (
ORDONNEE) - function values, together withABSCISSEto define corresponding abscissa values.
Left extension (
PROL_GAUCHE) - extension on the leftEXCLU- no extension, defaultCONSTANT- extension by end valueLINEAR- extension by linear extrapolation
Right extension (
PROL_DROITE) - extension on the rightEXCLU- no extension, defaultCONSTANT- extension by end valueLINEAR- extension by linear extrapolation
Interpolations (
INTERPOL) - interpolation between pointsLIN- linear interpolation, defaultLOG- 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 theFOMRULEorFONCTIONLIST_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 anotherFORMULE;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 variablemypara=30.)XY
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/STEELUNITE_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 forcesThermal 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
Elastic properties, see Linear elasticity.
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):EPSIRight 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\) (parameterEPSI). 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}\)
with
and
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)
Invariants of the right Cauchy-Green tensor
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
Deformation gradient tensor (two-point tensor)
\(\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
AsterStudy - Material - Define a material (DEFI_MATERIAU )
ELAS_HYPERC10- 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
C01andC20are Zero, then the material behaviour leads to a neo-Hookean typeif only
C20is Zero, then the material beviour leads to a Mooney-Rivlin typethe material is elastic incompressible in small deformations if
C10andC01conforms \(6(C_{10}+C_{01})=E\), where \(E\) is the Young’s modulusthe fact of almost-compressible holds the relation to convert
KandNUinto 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 elementsMaterial field (
CHAM_MATER) - link to the materialCOMPORTEMENT(behavior)DEFORMATION:GROT_GDEPGroup of element (
GROUP_MA) - define the group of elementsRELATION:ELAS_HYPER- elastic behavior
Loads (
EXCIT) - link to static (CHARGE) and dynamic (CHARGE+FONC_MULT) boundary conditionsTimestepping (
INCREMENT) - link to time stepping list (DEFI_LIST_INST), e.g. timesModel (
MODELE) - link to the modelNEWTONREAC_ITER: 1 - recompute matrix every 1 Newton’s iteration
Solver (
SOLVEUR)METHODE:MUMPS- default solverRENUM: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_ORTHLAMBDA_LLAMBDA_TLAMBDA_NVolumetric heat capacity (
RHO_CP23) - \(\rho C_p\)
6.3.3 Non-linear heat conduction THER_NL¶
AsterStudy - Material - Define a material (DEFI_MATERIAU )
THER_NLExacly 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 analysisField name (
NOM_CHAM): Temperature (TEMP)Right extension (
PROL_DROITE):LINEAIRELeft 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:YVALE0, 100
10, 0
AsterStudy - BC and Load - AFFE_CHAR_MECA_F
PRES_REPGroup of element (
GROUP_MA) - link to the region where the load should be applied toPRES- 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)XY
Example usage:
AsterStudy - BC and Load - AFFE_CHAR_MECA_F
FORCE_COQUEGroup of element (
GROUP_MA) - link to the region where the load should be applied toFZ- 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_DDLGroup 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 forAFFE_CHAR_MECA_F) - list of dof coefficients functions \(\alpha_i\). Function can depend on initial geometry.COEF_IMPO- common coefficient \(\beta\). In case ofAFFE_CHAR_MECA_Fthe 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_DDLGROUP_NO: GN1, GN1DDL: DX, DYCOEF_MULT: 1, -1COEF_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 dofsDX,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
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)
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 optionCHAR_MECA_ROTA_R.Celerity (
VITESSE) (angular velocity ω) - number of revolutionsomegaAXE(axis) - axis of rotationa_r,b_r,c_r. For plane modelings, the axis of rotation must be inOzdirection. For axisymmetric modelings and Fourier, it must be in theOydirection.Group of element (
GROUP_MA)Exlude group of element (
SANS_GROUP_MA)CENTRE- default the origin. For a defect specifyx,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 optionCHAR_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 optionCHAR_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(formerlyORIE_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(formerlyGROUP_MA) - the edge / face where the pressure should be applied toGROUP_MA_INTERNE(formerlyGROUP_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 optionCHAR_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 optionCHAR_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 optionCHAR_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
The distributed line load
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 optionCHAR_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 optionCHAR_MECA_EFON_R,CHAR_MECA_EFON_F.Group of element (
GROUP_MA) - the sectionGROUP_MA_INT- internal contour of the sectionPRES- 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 optionCHAR_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 optionCHAR_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 optionCHAR_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 optionCHAR_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 systemGroup 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 optionCHAR_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 modelNUME_DDL- Enter new result name, e.g. nddlMaterial field (
CHAM_MATER)Structural element characteristic (
CARA_ELEM) - optional for structural elementsLoad (
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_APPUIYes (
OUI) - all supports are excited with the same acceleration.No
MATR_MASS- link to the mass matrixDirection (
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_IMPOExacly 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
AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )
FLUX_REPAt 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
AsterStudy - BC and Load - Assign variable thermal load (AFFE_CHAR_THER_F )
FLUX_NLAt 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¶
convection W/(m^2 K)
AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )
ECHANGEAt Least One
All (
TOUT): Yes (OUI)Group of element (
GROUP_MA)
COEF_H- heat transfer coefficientTEMP_EXT- external temperature
Model (
MODELE)
7.6.5 Heat exchange between walls ECHANGE_PAROI¶
AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )
ECHANGE_PAROIExacly One
GROUP_MA_1FISSURE
Exacly One
GROUP_MA_2
COEF_H- heat transfer coefficientTRAN
Model (
MODELE)
7.6.6 Heat source SOURCE¶
volumetric power W/m^3
AsterStudy - BC and Load - Assign thermal load (AFFE_CHAR_THER )
SOURCEAt Least One
All (
TOUT): Yes (OUI)Group of element (
GROUP_MA)
Exacly One
SOURSOUR_CALCULEE
Model (
MODELE)
7.6.7 Non-linear transient heat source SOURCE¶
AsterStudy - BC and Load - Assign variable thermal load (AFFE_CHAR_THER_F )
SOURCEAt 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 withINST, 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.INTERVALLEExacly One
NOMBRE- number of intervalsPAS- step size, e.g.0.01
JUSQU_A- end time, e.g.1.0or 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 interpolationLOGNo
Right extension
CONSTANTLINEAIRE- 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 partMAILLAGE_2- link to the other mesh partOPERATIONCOLLAGE(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_ROPERATION:NORMALE(get face normals)Group of element (
GROUP_MA) - link to the face where we need the normal from, e.g. the contact faceModel (
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 ifMASSIFis active, seeTYPE_RACCORDGROUP_MA_ESCL- link to the slave element group, the contact surface / areaTYPE_RACCORD(slave-master)COQUE(shell-shell, likeDKTwithCOQUE_3D)COQUE_MASSIF(shell-solid)EPAIS- thickness of the area selected withGROUP_MA_ESCLCHAM_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 modelFORMULATION: Continue (CONTINUE)ZONEGROUP_MA_ESCL- link to the slave group of element, the contact surface (3D) / edge (2D), fine mesh, small contact region, great curvature, small stiffnessGROUP_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.1ALGO_CONT:PENALISATIONALGO_FROT:PENALISATIONCOEF_PENA_CONT: about the material stiffness (1xE)COEF_PENA_FROT: about the material stiffness (1xE)
FROTTEMENT(friction):COULOMB- Coulomb frictionSANS- 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_ELEMGROUP_MA_1- link to the contact surface element group of the solid meshGROUP_NO_2- link to the contact single node group of the beam meshOPTION: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_SOLIDEExacly 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_RBE3GROUP_NO_MAIT- master node group (a single node group)GROUP_NO_ESCL- list of slave nodes groupsDDL_MAIT- dofs of the master nodeDLL_ESCL- dofs list for every slave node group or one entry for all. dofs defined as string delimit with dash (possible entriesDX,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
NO1defining from dofsDX,DY,DZ,DRXGROUP_NO_MAIT:NO1DDL_MAIT:DX,DY,DZ,DRX
slave node
NO2coupling to dofsDX,DY,DZwith weighting coefficient 0.1, slave nodeNO3coupling to dofsDX,DY,DZ,DRXwith weighting coefficient 0.2, slave nodeNO4coupling to dofsDX,DY,DZ,DRXwith weighting coefficient 0.3GROUP_NO_ESCL:NO2,NO3,NO4DDL_ESCL:DX-DY-DZ,DX-DY-DZ-DRX,DX-DY-DZ-DRXCOEF_ESCL:0.1,0.2,0.3
2
master node
LOADPOINdefined byDX,DY,DZGROUP_NO_MAIT:LOADPOINDDL_MAIT:('DX', 'DY', 'DZ')
some slave nodes
LOADFACEcouplingDX-DY-DZGROUP_ESCL:LOADFACEDDL_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_FRONTprovides 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
PETSCexternal multi-method solver
very fast and robust when associated with pre-conditioner
LDLT_SPprovides access to parallelism
parallelism
solver:
MUMPS,PETSCcode_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 assignmentStructural element characteristic (
CARA_ELEM) - link to the structural parametersModel (
MODELE) - link to the model assignementLoads (
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_PLANand3D) you can useDEFORMATION='GREEN'to enable large displacements (including large rotations). Note that constitutive law is still written with a small strain hypothesis. Any constitutive law available underCOMP_INCRcan be used. UnderCOMP_ELAS, you can useELAS_VMIS_*andELAS_HYPER(non-linear elasticity and hyperelasticity).with 3D shell elements (
COQUE_3D), the same is enabled when selectingGREEN_GR(with constitutive lawELASunderCOMP_ELAS, that is only linear elasticity can be used when dealing with large displacements/rotations).with beam element
POU_D_T_GD, you must useGREEN_GR(with constitutive lawELAS_POUTRE_GRunderCOMP_ELAS, that is only linear elasticity can be used).with bar element
CABLE, you must useGREEN(with constitutive lawCABLEunderCOMP_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_REACwhich 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_TGMelement (a multi-fiber beam element), one can useDEFORMATION='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. 0INTERVALLE[0]
Exacly One
NOMBRE- number of intervals / stepsPAS- 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 adaptionDEFI_LISTTime 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_MINIthen calculation STOP.
AsterStudy - Analysis - STAT_NON_LINE
Name - for example resnonl
Model (
MODELE) - link to the modelMaterial field (
CHAM_MATER) - link to the materialLoads (
EXCIT)[0]
Load (
CHARGE) - link to static boundary conditions, e.g. support
[1]
Load (
CHARGE) - link to dynamic boundary conditions, (mormalized) directionMultiplier function (
FONC_MULT) - link to the load table, amplitude, see alsoDEFI_FUNCTIONwithNOM_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 elementsCOMPORTEMENT(behavior)All (
TOUT): Yes (OUI)Group of element (
GROUP_MA) - define the group of elementsRELATIONElastic
ELAS- elastic behaviorELAS_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 algorithmIMPLEXNEWTON_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 algorithmMODELE_REDUIT(model reduced) - model reduction. It is necessary to have built a base to reduce (order beforehandDEFI_BASE_REDUITE).
CONVERGENCERESI_GLOB_RELA- default1e-06ITER_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) - defaultMUMPSRENUM- defaultAUTO
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 stepsTime (
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.
NEWTONREAC_INCR(increments) - default 1. Quasi-Newton method: recompute matrix every n time’s stepMATRICETANGENTE- total iterations, defaultELASTIQUE- 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 elementsRELATIONElastic
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 elementsRELATIONELAS_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 modelMaterial field (
CHAM_MATER) - link to the material assignmentTimestepping (
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 elementsLoads (
EXCIT)Load (
CHARGE) - link to the load assignmentMultiplier 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 behaviorDEFORMATION:GROT_GDEP- large displacement and rotation
Storing (
ARCHIVAGE)Time step list (
LIST_INST) - link to time list table (DEFI_LIST_REEL)
NEWTONREAC_INCR(increments) - default 1. Quasi-Newton method: recompute matrix every n time’s step
CONVERGENCERESI_GLOB_RELA- default1e-06ITER_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 assignementMaterial field (
CHAM_MATER) - link to the material assignementLoads (
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 parametersCOMPORTEMENT(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 assignementMaterial field (
CHAM_MATER) - link to the material assignementLoads (
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) directionMultiplier 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 behaviorGroup of element (
GROUP_MA) - link to the element group of whole model or the part with contact
Solver (
SOLVEUR)Method (
METHODE):MUMPSNPREC: 8
Storing (
ARCHIVAGE)Time step list (
LIST_INST) - link to time list table (DEFI_LIST_REEL)
NEWTONREAC_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_BETAASSEMBLAGEOPTION:AMOR_MECA
Structural (hysteretic) damping
\(-\omega^2 M \ddot X + (j\kappa + 1 )K X = E \, u(\omega)\)
Reserved for Frequency Response Analysis
ASSEMBLAGEOPTION: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_VIBRATYPE_CALCUL:TRANBASE_CALCUL:GENEAMOR_REDUIT:0.01
DYNA_VIBRACan also be used without model reduction but require a modal basis
TYPE_CALCUL:TRANBASE_CALCUL:PHYSAMOR_MODALMODES- link to modesAMOR_REDUIT:0.01
For transient analysis, an initial time step suggestion is
with \(f\ti{response}\) as the frequency of the highest mode of interest.
8.3.1 Modal analysis¶
Note only linear behaviour
Requirements
Density must be defined for the material (
DEFI_MATERIAU)
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
Model (
MODELE) - link to the modelNUME_DDL- Enter new result name, e.g. nddlMaterial field (
CHAM_MATER)Structural element characteristic (
CARA_ELEM) - optional for structural elementsLoad (
CHARGE) - link to all boundary conditions
AsterStudy - Analysis - CALC_MODES
MATR_RIGI: KMATR_MASS: MOption (
OPTION)PLUS_PETITE(smallest)PLUS_GRANDE(largest)CENTREBANDE(range)
CALC_FREQ(in case of
PLUS_PETITE)NMAX_FREQ: 10
(in case of
BANDE)FREQ- for example 0, 100
NORM_MODE- normalization mode also for additional dynamic analysisMASS_GENE- mass normalized mode shapes
VERI_MODESTOP_ERREUR: No (NON) - do not stop calculation if error is greater than the threshold (SEUIL).
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 calculatedRIGI_MECAandMASS_MECApreviously (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. fxCHAR_MECALoad (
CHARGE) - link to the boundary condition where the load factor and direction is defined (AFFE_CHAR_MECA).
Model (
MODELE) - link to the modelNUME_DDL- Enter new result name, e.g. nddlMaterial field (
CHAM_MATER)Structural element characteristic (
CARA_ELEM) - optional for structural elementsLoad (
CHARGE) - link to all boundary conditions, not the load condition which is used inVAECT_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.0or0.1.INTERVALLEExacly One
NOMBRE- number of intervalsPAS- step size, e.g.0.01
JUSQU_A- end time, e.g.1.0or 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 matrixMATRICE: MG
[1]
MATR_ASSE- link to the stiffness matrixMATRICE: KG
VECT_ASSE_GENEVECT_ASSE- link to the load vector (from insideASSEMBLAGE)VECTEUR- define the name of the vector in modal coordinate system, e.g. fxG
BASE- link to the modal analysisNUME_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_GENEExacly 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 matrixMASS_GENE- link to the generalized mass matrix
AsterStudy - Analysis - DYNA_VIBRA - for harmonic and transient anlaysis
BASE_CALCULGENE- for modal base system calculations, for reduced techniques
TYPE_CALCULHARM- harmonic, steady state response
LIST_FREQ- link to the frequency listLoads (
EXCIT)VECT_ASSE_GENE- link to the generalized load factor vector (from insidePROJ_BASE)COEF_MULT(multiplicatio factor): 1 (for example)
MATR_MASS- link to the generalized mass matrixMATR_RIGI- link to the generalized stiffness matrixmodal 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 methodSCHEMADIFF_CENTRENEWMARK…
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.INTERVALLEExacly One
NOMBRE- number of intervalsPAS- step size, e.g.0.01
JUSQU_A- end time, e.g.1.0or a variable.
AsterStudy - Analysis - DYNA_VIBRA - for harmonic and transient anlaysis
Name - optionally alter name to restran instead to resharm for transient analysis.
BASE_CALCULPHYS- for physical base system calculations (used in this example)
TYPE_CALCULTRAN- 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 matrixMATR_RIGI- link to the stiffness matrixMATR_AMOR- link to the damping matrixSCHEMA_TEMPS- optionally define integratin methodSCHEMADIFF_CENTRENEWMARK…
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¶
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.INTERVALLEExacly One
NOMBRE- number of intervalsPAS- step size, e.g.0.01
JUSQU_A- end time, e.g.1.0or a variable.
continuation of: AsterStudy - Analysis - Linear thermal analysis (THER_LINEAIRE )
Initial condition (
ETAT_INIT)Either
STATIONNAIRE: Yes (OUI) - default, results of a stationnary calculationEVOL_THER- The result of another thermal calculation + chosen time (NUME_ORDREorINST)CHAM_NO- A known temperature field, for example, created withCREA_CHAMPValue (
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
THER_NON_LINE_MOfor a problem of live loads in permanent mode
8.4.3 Analytical temperature field¶
Example analytical formula of the temperature field in the thickness of an axisymmetric cylinder (X).
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_FOPERATION: Assignment (AFFE)Mesh (
MAILLAGE) - link to meshAssignment (
AFFE)All (
TOUT): Yes (OUI)VALE_F- link to formula T0NOM_CMP:TEMP
AsterStudy - Output - CREA_RESU
Name - for example resther
OPERATION: Assignment (AFFE)TYPE_RESU:EVOL_THERNOM_CHAM: Temperature (TEMP)Assignment (
AFFE)Time (
INST): 0Single 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_ELGAmeans ’SIgma’ (stress) or ’EFfort’ (force or moment), per ’ELement’ at ’GAuss’ 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 forceN;SN = N/ASMFY\(\sigma\ti{xx}\) is the part of normal stress due to the bending momentMFY;SMFY = MFY/IY × RZSMFZ\(\sigma\ti{xx}\) is the part of normal stress due to the bending momentMFZ;SMFZ = - MFZ/IZ × RYSVY\(\sigma\ti{xy}\) is the shear stress due to the shear forceVYand coefficientaYin y direction;SVY = VY/A x aYSVZ\(\sigma\ti{xz}\) is the shear stress due to the shear forceVYand coefficientaZin z direction;SVZ = VZ/A x aZSMT\(\sigma\ti{yz}\) is the shear stress due to the torqueMX;SMT = MX/JX x RT
The fields SIPM_* (’SI gma’ ’P outre’ ’M aximum’, this field is restricted to beams only)
SIXXis 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 AnalysisFORCE:REAC_NODA- for support reactionsFORC_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 operationsGroup 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 usingDEFI_GROUP).exacly one
TOUT_CMP:OUI- to extract all info on all nodesNOM_CMP: e.g.DX,DY,DZ- to extract defined info on all nodes
OPERATION:EXTRACTIONINTITULE- 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 operationsGroup 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 usingDEFI_GROUP).TOUT_CMP:OUI- to extract info on all nodesOPERATION:EXTRACTIONINTITULE- 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 operationsGroup 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 usingDEFI_GROUP).RESULTANTE:DX,DYfor 2D orDX,DY,DZfor 3D - sum values in defined directionsOPERATION:EXTRACTIONINTITULE- 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 operationsGroup 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 usingDEFI_GROUP).RESULTANTE:DX,DYfor 2D orDX,DY,DZfor 3D - sum values in defined directionsOPERATION:EXTRACTIONINTITULE- 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
GenarateVectorsin thePropertiestab.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 AnalysisCONTRAINTE:EFGE_ELGA,EFGE_ELNO,EFGE_NOEU,SIEF_ELGA,SIEF_ELNO,SIEF_NOEU,SIGM_ELGA,SIGM_ELNO,SIGM_NOEU,SIPM_ELNOSIPO_ELNO,SIPO_NOEUSIRO_ELEM(3D,3D_SI,D_PLAN,D_PLAN_SI)STRX_ELGA
CRITERES:SIEQ_ELGA,SIEQ_ELNO,SIEQ_NOEUVARI_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 AnalysisCONTRAINTE:SIGM_ELNOCRITERES:SIEQ_ELNO
AsterStudy - Post Processing - POST_CHAMP
Name - define a name for the specific surface (layer number and position)
EXTR_COQUENOM_CHAMSIGM_ELNOSIEQ_ELNO
NUME_COUCHE- the number of the layer, e.g. 1 for the first layerNIVE_COUCHEINF(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 theCALC_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_NOEUCRITERES:SIEQ_NOEU
9.1.3 Strain fields DEGE_*, EPFD_*, EPME_*, EPMG_*, EPSG_*, EPSI_*, EPSP_*, EPVC_*, EPSL_*¶
DEGE_*- déformations généralisées - generalized deformationsEPFD_*- epsilon (déformations) de fluage de dessiccation - dry creep strainEPME_*- 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) coefficientdrying (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) coefficienthydration (hydratation)
EPHYDR(for concrete, du béton) \(\varepsilon\ho{hydr} = -B\ti{endog}h\), \(h\) variable of hydration, \(B\ti{endog}\) endogenous (endogène) coefficientpressure 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 AnalysisDEFORMATIONDEGE_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_NOEUEPMG_ELGA,EPMG_ELNO,EPMG_NOEUEPSG_ELGA,EPSG_ELNO,EPSG_NOEUEPSI_ELGA,EPSI_ELNO,EPSI_NOEUEPSP_ELGA,EPSP_ELNO,EPSP_NOEUEPVC_ELGA,EPVC_ELNO,EPVC_NOEUEPSL_ELGA,EPSL_ELNO,EPSL_NOEU
9.1.4 Internal variables VAEX_*, VARC_*, VARI_*¶
VAEX_*- extraction des variables internes - single variable extraction from eitherVARI_ELGAorVARI_ELNOonly thermal-hydro-mechanic. A single component to chooseDPORO- Variation de la porosité du matériau - Variation of the porosity of materialDRHOLQ- Variation de la masse volumique du matériau - Variation of the density of materialDPVP- Variation de la pression de vapeur - Variation of the steam pressureSATLIQ- Saturation du liquide - Saturation of the liquidEVP- Déformation plastique volumique cumulée - Cumulated voluminal plastic deformationIND_ETA- Indicateur d’état mécanique - Mechanical indicator of stateD- Valeur de l’endommagement - Value of the damageIND_END- Indicateur d’endommagement - Indicator of damageTEMP_MAX- Température maximale - Maximum temperatureGAMP- Déformation déviatoire plastique cumulée - Plastic deformation déviatoire cumulatedPCR- Pression critique - Critical pressureSEUIL_HYD- Seuil hydrique - Hydrous thresholdIND_HYD- Indicateur d’irréversibilité hydrique - Hydrous indicator of irreversibilityPCOHE- Pression de cohésion - Pressure of cohesionCOMP_ROC- Comportement de la roche - Behavior of the rockSEUIL_ISO- Seuil isotrope - Isotropic thresholdANG_DEV- Angle du seuil déviatoire - Angle of the threshold déviatoireX11- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningX22- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningX33- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningX12- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningX13- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningX23- Composantes du tenseur d’écrouissage cinématique - Components of the kinematic tensor of work hardeningDIST_DEV- Distance normalisée au seuil déviatoire - Distance standardized with the threshold déviatoireDEV_SUR_CRIT- Rapport entre le seuil déviatoire et le seuil déviatorique critique - Relationship between the threshold déviatoire and the critical threshold deviatoricDIST_ISO- Distance normalisée au seuil isotrope - Distance standardized with the isotropic thresholdNB_ITER- Nombre d’itérations internes - Iteration count internalARRET- Valeur du test local d’arrêt du processus itératif - Value of the local test of stop of the iterative processNB_REDE- Nombre de redécoupage local du pas de temps - Number of local recutting of the step of timeSIGNE- 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_ELGAseeDEFI_MATERIAUTEMPHYDRSECHCORRIRRAPTOTDIVUNEUT1NEUT2
VARI_ELNO,VARI_NOEU(VARI_ELGAis 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 AnalysisVARI_INTERNEVAEX_ELGA,VAEX_ELNO,VAEX_NOEU(only thermal-hydro-mechanic)VARC_ELGAVARI_ELNO,VARI_NOEU(VARI_ELGAdefault 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 forDKTG,GLRC_DMsee Law of behavior of reinforced concrete plates GLRC_DMENDO
ECIN_ELEM- énergie cinétique - kinetic energy\[E\ti{c} = \frac{1}{2}mv^2\]TOTALMEMBRANE,FLEXION- plate and shell elements, see Elements of plate: modelings DKT, DST, DKTG and Q4GPLAN_XY,PLAN_XZ- curved beam elements, see “Exact” elements of beamsDX,DY,DZ,DRX,DRY,DRZ- discrete elements
ENEL_*- (densité) d’énergie élastique - elastic energy (density)\[E\ti{p} = \frac{1}{2}\sigma A^{-1} \sigma\]TOTALEMEMBRANE,FLEXION(bending),CISAILLE(shear),COUPL_MF(couple membrane and bending) - plate and shell elements, see Elements of plate: modelings DKT, DST, DKTG and Q4G (for non-linearCISAILLEandCOUPL_MFwithout meaning)
ENTR_ELEM- énergie élastique modifiée de traction - modified elastic energy of traction (only forDEFORMATION=PETITorDEFORMATION=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}\]TOTALEMEMBRANE,FLEXION- plate and shell elements, see Elements of plate: modelings DKT, DST, DKTG and Q4GTRAC_COM,TORSIONFLEX_Y,FLEX_Z- exact beam elements, see “Exact” elements of beamsPLAN_XY,PLAN_XZ- curved beam elements, see “Exact” elements of beamsDX,DY,DZ,DRX,DRY,DRZ- discrete elements
ETOT_*- incrément (de densité) d’énergie de déformation totaleTOTALE
AsterStudy - Post Processing - CALC_CHAMP
resuse - Name; same name as of Analysis to extend the results.
Result (
RESULTAT) - link to the AnalysisENERGIEDISS_ELEM,DISS_ELGA,DISS_ELNO,DISS_NOEUECIN_ELEMENEL_ELEM,ENEL_ELGA,ENEL_ELNO,ENEL_NOEUENTR_ELEMEPOT_ELEMETOT_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 AnalysisOPTIONERME_ELEM- estimator of error in residue
9.1.7 Extreme displacements, stresses¶
AsterStudy - Post Processing - POST_RELEVE_T
ACTION(do not mix different actions, likeEXTRACTIONandEXTREMA, cols in the table are different)[0] (extreme displacement regardless of the direction)
Result (
RESULTAT) link to the analysis or other post processing operationsOPERATION:EXTREMAINTITULE- 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 operationsNOM_CMP:DXOPERATION:EXTREMAINTITULE- 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 operationsOPERATION:EXTREMAINTITULE- 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 operationsNOM_CMP:VMIS,VMIS_SGOPERATION:EXTREMAINTITULE- 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
ACTIONResult (
RESULTAT) - link to the analysis or other post processing operationsGroup 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 (seeNOM_CHAM) in all directionsRESULTANTE- define the direction of interest;DX,DYfor 2D orDX,DY,DZfor 3D or alsoDRX,DRY,DRZfor beams and shells
OPERATION:EXTRACTIONINTITULE- define the name of extraction, e.g. ’displacement’NOM_CHAM- the field where the data will be extracted fromDEPL- displacementACCE- 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: reslinLIGN_COUPETYPE:SEGMENTNB_POINTS- number of points, e.g. 100COOR_ORIG- x, y (and z) coordinates of begin of line, e.g. 0.0, 0.0, 0.0COOR_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_CHAMPorCALC_CHAMPMODI_CHAM[0] 2D vector field, expects data as follow: X, Y and returns R, θ
TYPE_CHAM:VECT_3DNOM_CHAM- e.g.DEPLNOM_CMP- e.g.DX,DY,DZ
[1] 3D vector field, expects data as follow: X, Y, Z and returns R, Z, θ
TYPE_CHAM:VECT_3DNOM_CHAM- e.g.DEPLNOM_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_2DNOM_CHAM- e.g.SIGM_NOEUNOM_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_3DNOM_CHAM- e.g.SIGM_NOEUNOM_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.0AXE_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):FREQCO- link toCALC_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 analysisMethod (
METHODE) - optinallyPROL_ZERO- add zeros the the to the signalTRONCATURE- 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- velocityACCE- acceleration
AsterStudy - Post Processing - POST_RELEVE_T
ACTIONResult (
RESULTAT) - link to the analysis or other post processing operationsGroup 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 (seeNOM_CHAM) in all directionsRESULTANTE- define the direction of interest;DX,DY,DZ,DRX,DRY,DRZ
OPERATION:EXTRACTIONINTITULE- define the name of extraction, e.g. ’displacement’NOM_CHAM- the field where the data will be extracted fromDEPL- displacement (this is selected for example)VITE- velocityACCE- acceleration
FORMAT_C- specify which part of the complex number should be consideredIMAG- the imaginary partMODULE- 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 coordinatesNOM_CHAMACCEDEPL
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 coordinatesOBSERVATIONAt Least One
Group of node (
GROUP_NO) link to the group of nodes of interestGroup of element (
GROUP_MA)
NOM_CHAM:DEPLNOM_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.DEPLGroup of node (
GROUP_NO) - link to the node set of interestNOM_CMP- specify the direction, e.g.DX(x direction)Parameter name (
NOM_PARA): Time (INST)
AsterStudy - Output - IMPR_FONCTION
Format (
FORMAT):XMGRACECOURBEFONCTION: link to the displacement function, e.g. dispfMARQUEUR: 0STYLE: 1
Filename (
UNITE) - for example dispf.epsPILOTE: ’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.DEPLGroup of node (
GROUP_NO) - link to the node set of interestNOM_CMP- specify the direction, e.g.DX(x direction)
AsterStudy - Output - IMPR_FONCTION
Format (
FORMAT):XMGRACECOURBEFONCTION: link to the frquency response curve function, e.g. frfMARQUEUR: 0STYLE: 1
Filename (
UNITE) - for example frf.epsPILOTE: ’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 AnalysisThermic (
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 processingOption (
OPTION)ERME_ELEM- estimator of residual error in mechanics and stationary hydro-mechanics at elementsERME_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 forCOQUE_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 resultsMODELE_1- link to the model with the mesh with centre nodeMODELE_2- link to the model with the mesh without the centre node (e.g.MODELISATION:3Deven forCOQUE_3Dmeshes)
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_ELGAorSIEQ_ELGAVALE_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 systemResult (
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 fromNOM_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_TTABLE- link to the table, e.g. fromPOST_RELEVE_TACTIONOPERATION:FILTRENOM_PARA- e.g. filter out node names:NOEUDCRIT_COMPREGEXP- 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 viaPILOTE).Format (
FORMAT):XMGRACEParameter name (
NOM_PARA) - can be one of the columns of the file[0] - the x axis, e.g.
INST(time) orABSC_CURV(curvy line axis)[1] - the y asix, e.g.
DX(direction x, the values come from the table extraction) orVMIS
Title (
TITRE) - the plot title, e.g. Displacement responsePILOTE- the file format / extension, e.g.EPS.STYLE- 1 for continues lineMARQUEUR- 0 for no marker for pointsBORNE_X- the x limits, lower and upper limitBORNE_Y- the y limits, lower and upper limit, probably not useful because the deflection is unknownGRILLE_X- the grid sizing / spacing in x directionLEGENDE_X- x-axis lable, e.g. Time t in sLEGENDE_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):XMGRACECOURBE(curve)FONCTION- link to the function (e.g.LIRE_FONCTION,RECU_FONCTION)STYLE- 1 for continues lineMARQUEUR- 0 for no marker for points
Filename (
UNITE) - define the location and the filename of the .agr-file.Title (
TITRE) - title of graphLEGENDE_X- x-axis labelLEGENDE_Y- y-axis label
10.6.3 2D plot of two functions with same argument¶
AsterStudy - Output - IMPR_FONCTION
Format (
FORMAT):XMGRACECOURBE(curve)FONC_X- link to the first function (e.g. displacement in x directionDXviaRECU_FONCTION)FONC_Y- link to the second function (e.g. stress in x directionSIXXviaRECU_FONCTION)STYLE- 1 for continues lineMARQUEUR- 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 lableLEGENDE_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 fileConcept (
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 -
NoneVectors -
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 workGroup of element (
GROUP_MA) - link to the group of elements where the results should be extracted from, e.g. the beam groupResults (
RESU)[0]
NOM_CHAMSIEF_ELGA
NOM_CMPSIXX
[…]
NOM_CHAMSIEQ_ELGASIGM_ELGAVARI_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_TEMPsmall 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_ELNOOutput 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_vectorEquation:
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_vectorEquation:
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
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_2andCARA_.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_2in yellow andCARA_.REPLO_3in green.
# -*- 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¶
11.15.1 Rotation about x-axis, [x,y,z] -> [x,r,theta]¶
Filter - Alphabetical - Python Calculator
Note:
coordsX/Y/Zcan be accessed withpoints[:,0],points[:,1]andpoints[:,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_xrExpression:
reslin__SIGM_NOEU_SIXY*cos(theta) + reslin__SIGM_NOEU_SIXZ*sin(theta)
Filter - Common - Calculator
Attibute Mode: Point Data
Result Array Name:
sigma_xthetaExpression:
-reslin__SIGM_NOEU_SIXY*sin(theta) + reslin__SIGM_NOEU_SIXZ*cos(theta)