Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 1/6
Organization (S): EDF/MTI/MN
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
Document: D4.06.06
Structures of data cham_no_s and cham_elem_s
Summary
This document describes the structures of data cham_no_s and cham_elem_s One also gives the list of
principal utilities working on these structures of data.
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 2/6
1 Objective
2 new SD are defined: cham_no_s and cham_elem_s which contains same information as
the SD cham_no and cham_elem but which is more “simple” to handle in FORTRAN. There exists
utilities allowing to transform a cham_no into cham_no_s (and reciprocally) (in the same way for
cham_elem).
These SD will be thus in general temporary SD making it possible to work more simply
Important remark:
The SD cham_no_s and cham_elem_s are not as general as the SD cham_no and
cham_elem.
For the cham_no_s, one describes only the fields carried by the nodes of the grid (and not
possible late nodes),
For the cham_elem_s, one does not describe that the fields carried by the finite elements of which
net support is a mesh of the grid (and not a late mesh
2 SD
cham_no_s
cham_no_s (K19)
::= record
“.CNSK”:
OJB
S
V
K8
dim=2
“.CNSD”:
OJB
S
V
I
dim=2
“.CNSC”:
OJB
S
V
K8
dim=nb_CMP
“.CNSV”
: OJB S V R/C/I/…
dim=nb_NOEUD * nb_CMP
“.CNSL”:
OJB
S
V
L
dim=nb_NOEUD * nb_CMP
Contents of the OJB:
This SD is used to describe a field of sizes carried by the nodes of a grid.
“.CNSK” (1):
netted: name of the grid subjacent with the cham_no_s.
“.CNSK” (2):
nomgd: name of the size associated with cham_no_s (“DEPL R”,
“SIEF_R”,…)
“.CNSD” (1): nb_NOEUD: a number of nodes of the subjacent grid.
“.CNSD” (2): nb_CMP: maximum CMPS carried by the nodes number.
“.CNSC” (ICMP): cmp_i: name of the ième CMP of the cham_no_s
Note:
The command of the CMPS in .CNSC can be unspecified. One is not obliged to respect the command
catalog of the sizes. On the other hand, the CMPS must belong to the CMPS of
size nomgd.
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 3/6
“.CNSV”:
This object contains the values of the cham_no_s.
The type of this vector JEVEUX (R/C/I/K8,…) is that of the size nomgd.
Its dimension is nb_NOEUD * nb_CMP; i.e. all the nodes of grid can carry
all CMPS described in .CNSC.
One reaches ICMP-ème CMP of INO-ème NOEUD by the formula:
VALEUR (INO, ICMP) = .CNSV ((INO-1) * nb_CMP + ICMP)
Note:
The presence (or the absence) of a CMP on a NOEUD is indicated via object .CNSL (see
below). During the creation of a cham_no_s, its nonaffected values are in settings with
“undef” for better detecting their illicit use.
“.CNSL”:
This object contains the Boolean ones indicating the presence (or the absence) of the values of the cham_no_s.
Its dimension is nb_NOEUD * nb_CMP; one moves there in the same way that in object .CNSV
One examines the presence of ICMP-ème CMP of INO-ème NOEUD by the formula:
EXISTE (INO, ICMP) = .CNSL ((INO-1) * nb_CMP + ICMP)
3 SD
cham_elem_s
3.1
Description of the SD
This structure of data makes it possible to represent the values of the fields discretized on the meshs
of a grid.
More precisely, the access to an actual value (or complex,…) field is done while specifying:
· the number of the mesh supporting the finite element (IMA),
· the number of the point in mesh (IPT),
· the number of the under-point in point (ISP) (ISP=1 in general),
· the number of the component of the size associated with field (ICMP),
cham_elem_s (K19)
::= record
“.CESK”:
OJB
S
V
K8
dim=3
“.CESD”:
OJB
S
V
I
dim=5
+
4 * nb_MAILLE
“.CESC”:
OJB
S
V
K8
dim=nb_CMP
“.CESV”
: OJB S V/R/C/I/…
dim=nbval
“.CESL”:
OJB
S
V
L
dim=nbval
3.1.1 object
.CESK
.CESK (1):
netted: name of the grid subjacent with the cham_elem_s.
.CESK (2):
nomgd: name of the size associated with the cham_elem_s (“DEPL_R”, “SIEF_R”,…)
.CESK (3):
/“ELNO”: field known with the nodes of the elements,
/“ELGA”: field known at the points of Gauss of the elements,
/“ELEM”: constant field by element (one will say whereas it is known in the center of
gravity)
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 4/6
3.1.2 object
.CESD
.CESD (1):
nb_MAILLE: a number of meshs of the subjacent grid.
.CESD (2): nb_CMP
: a number of CMPS carried by the points. It is the dimension of the object
.CESC
.CESD (3): nbptmx: maximum of the number of points carried by the meshs
.CESD (4): nbspmx: maximum of the number of under-points carried by the points of the meshs
.CESD (5): nucmpmx: highest sequence number of the possible CMP of the cham_elem_s
(in the order of object .CESC)
.CESD (5+4 * (ima-1) +1): nbpt (ima): a number of points of the mesh ima.
.CESD (5+4 * (ima-1) +2): nbsp (ima): a number of under-points of the mesh ima.
.CESD (5+4 * (ima-1) +3): nbcmp (ima): maximum number of the CMPS carried by under
points of the points of the mesh ima.
.CESD (5+4 * (ima-1) +4):
IAD (ima):
IAD+1 is the address in objects .CESL and .CESV of 1ere CMP
1st under-point of the 1st point of the mesh ima (if they exist)
3.1.3 object
.CESC
.CESC (ICMP): cmp_i: name of the ième CMP of the cham_elem_s
Note:
The command of the CMPS in .CESC can be unspecified. One is not obliged to respect the command
catalog of the sizes. On the other hand, the CMPS must belong to the CMPS of
size nomgd (except size VARI_R).
3.1.4 objects
.CESL and .CESV
These objects contain the values of the cham_elem_s (.CESV) and Boolean (.CESL) indicating if
these values were affected (or if they are unspecified).
Type JEVEUX (R/C/I/K8,…) object .CESV is that of the size nomgd.
The dimension of these 2 vectors is nbval.
nbval is the sum on all the meshs ima of nbpt (ima) * nbsp (ima) * nbcmp (ima)
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 5/6
to reach ICMP-ème CMP of the ISP-ème under-POINT of IPT-ème POINT of IMA-ème
MAILLE of a cham_elem_s, one uses utility routine CESEXI:
CAL CESEXI (JCESD, JCESL, IMA, IPT, ISP, ICMP, IAD)
where JCESD and JCESL are the addresses of objects .CESD and .CESL of the cham_elem_s.
IAD is the “output” of this routine.
if IAD > 0, that wants to say that the required component exists in the cham_elem_s. One can then
to recover by: VALEUR = ZR (JCESV-1+IAD) (if the field is real).
if IAD < 0, that wants to say that the required component has a possible place in the cham_elem_s
but that it not affected currently. One can then affect a value in the cham_elem_s in
making:
ZR (JCESV-1+IAD) = VALUE
ZR (JCESL-1+IAD) = .TRUE.
if IAD = 0, that wants to say that the required component does not have a possible place in
cham_elem_s. C'est à dire that one at least of the following conditions is checked:
IMA > nb_MAILLE
IPT > nbpt (IMA)
ISP > nbSP (IMA)
ICMP > nbcmp (IMA)
3.2
Example of loop on the values of a cham_elem_s
CAL JEVEUO (THESE//“.CESD”, “It, JCESD)
CAL JEVEUO (THESE//“.CESL”, “It, JCESL)
CAL JEVEUO (THESE//“.CESV”, “It, JCESV)
NBMA = ZI (JCESD-1+1)
C 40, IMA = 1, NBMA
NBPT = ZI (JCESD-1+5+4 * (IMA-1) +1)
NBSP = ZI (JCESD-1+5+4 * (IMA-1) +2)
NBCMP = ZI (JCESD-1+5+4 * (IMA-1) +3)
C 30, IPT = 1, NBPT
C 20, ISP = 1, NBSP
C 10, ICMP = 1, NBCMP
CAL CESEXI (JCESD, JCESL, IMA, IPT, ISP, ICMP, IAD)
IF (IAD.GT.0) VALUE = ZR (JCESV-1+IAD)
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Code_Aster ®
Version
6.0
Titrate:
Structures of data cham_no_s and cham_elem_s
Date:
09/10/01
Author (S):
J. Key PELLET
:
D4.06.06-A Page
: 6/6
4
Utility routines
CARCES
to transform a card into a cham_elem_s
CELCES
to transform a cham_elem into cham_elem
CESCES
to change the discretization of a cham_elem (ELNO/CART/ELGA)
CESCNS
to transform a cham_elem_s into a cham_no_s
CESCRE
to create a cham_elem_s
CESEXI
to test the existence of a CMP of a point of a mesh of a cham_elem_s
CESRED
“to reduce” a cham_elem_s on a list of meshs and/or a list of CMPS.
CESTAS
“retasser” contents of a cham_elem_s
CNOCNS
to transform a cham_no into cham_no_s
CNSCES
to transform a cham_no_s into cham_elem
CNSCNO
to transform a cham_no_s into cham_no
CNSCRE
to create a cham_no_s
CNSPRJ
to project a cham_no_s on another grid
CNSRED
“to reduce” a cham_no_s on a list of nodes and/or a list of CMPS.
COPISD
to copy a cham_no_s or a cham_elem_s
DETRSD
to destroy a cham_no_s or a cham_elem_s
IMPRSD
to print on listing a cham_no_s or a cham_elem_s
Handbook of Descriptif Informatique
D4.06 booklet: Structures related to the finite elements
HI-75/01/005/A
Outline document