background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
1/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
Organization (S):
EDF-R & D/AMA















Instruction manual
U4.2- booklet: Mesh
U4.23.04 document



Operator
MODI_MAILLAGE





1 Goal
To carry out amendments on an existing mesh. The possibilities of amendments are:
·
to reorientate meshs of edge being used to apply a pressure,
·
to reorientate meshs HEXA8 of modeling SHB8,
·
to check the orientation of the normals on the elements of hull,
·
to reorientate the meshs of full-course of elements of gasket,
·
to reactualize the mesh starting from a deformation calculated previously,
·
to transform a mesh of plate into mesh of tube, then possibly of elbow,
(macro control MACR_ASCOUF_MAIL),
·
to transform a mesh of square into mesh of pricking (MACR_ASPIC_MAIL),
·
in a mesh with bottom of fissure, to move the nodes mediums of the edges touching it
melts of fissure to the quarter of these edges,
·
to relocate a mesh,
·
to impose one or more rotations of unspecified axes on a mesh,
·
to generate a symmetrical mesh compared to a plan in 3D or a line in 2D.
Product a structure of data of the mesh type or modifies the structure of data (operator
réentrant).
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
2/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
2 Syntax
netted [mesh] = MODI_MAILLAGE
(
reuse = netted,
MESH = my,
[mesh]
MODEL
= Mo,
[model]
ORIE_FISSURE = _F
(
GROUP_MA
= l_gm [l_gr_ma]
),
ORIE_SHB8 = _F
(
GROUP_MA
= l_gm [l_gr_ma]
),
DEFORME=
_F (
/OPTION
= “TRAN”
,
/OPTION
= “TRAN_APPUI”,
GROUP_NO_APPUI
=
lgno, [l_gr_no]
GROUP_NO_STRU = lgno, [l_gr_no]
DEPL =
depl,
[cham_no_depl_r]
),
ORIE_PEAU_2D
=_F
(
GROUP_MA = lgrma)
[l_gr_ma]
ORIE_PEAU_3D
=_F
(
GROUP_MA
=
lgrma)
[l_gr_ma]
ORIE_NORM_COQUE=_F (
GROUP_MA
=
lgrma,
[l_gr_ma]
VECT_NORM
= (n1, N2, [n3]),
[l_R]
/NODE = No, [node]
/
GROUP_NO=
grno,
[gr_no]
),
MODI_MAILLE =
_F (
OPTION
= “NOEUD_QUART”,
/
|
GROUP_MA_FOND=
lgma_fo,
[l_gr_ma]
|
MAILLE_FOND = lma_fo, [l_maille]
/
|
GROUP_NO_FOND=
lgno_fo,
[l_gr_no]
|
NOEUD_FOND = lno_fo, [l_noeud]
),
/EQUE_PIQUA = _F (
GROUP_NO = square, [gr_no]
E_BASE
= thickness,
[R]
DEXT_BASE
= diameter, [R]
L_BASE
=
length,
[R]
L_CHANF =
length,
[R]
H_SOUD
=
height,
[R]
ANGL_SOUD
=
angle,
[R]
JEU_SOUD
= play,
[R]
E_CORP
=
thickness, [R]
DEXT_CORP
=
diameter,
[R]
AZIMUTH
=
angle,
[R]
X_MAX
=
length,
[R]
RAFF_MAIL
=
raff,
[Txm]
TYPE
=
/“TYPE_1”
,
[Txm]
/“TYPE_2”,
)
,
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
3/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
/
|
PLAQ_TUBE
= _F (
DEXT =
Of,
[R]
THICK
=
E,
[R]
AZIMUTH
=
/
Q,
[R]
/90.,
[DEFECT]
L_TUBE_P1
= l_tube_p1, [R]
SEAM =/“YES”,
[DEFECT]
/
“NOT”,
)
,
|
TUBE_COUDE = _F (
ANGLE
=
,
[R]
R_CINTR
= Rc, [R]
L_TUBE_P1
= l_tube_p1, [R]
),
TRANSLATION = (n1, N2, [n3]),
[l_R]
ROTATION =_F
(
POIN_1
= (n1, N2, [n3]),
[l_R]
/POIN_2
= (n1, N2, [n3]),
[l_R]
/
DIR
=
(n1, N2, [n3]),
[l_R]
ENG =
/
has,
[R]
/0.,
[DEFECT]
),
SCALE = n1,
[R]
MODI_BASE
=_F
(
VECT_X
= (n1, N2, [n3]),
[l_R]
VECT_Y
= (n1, N2, [n3]),
[l_R]
),

SYMMETRY =_F
(
NOT = (n1, N2, [n3]),
[l_R]
/AXE_1
= (n1, N2, [n3]),
[l_R]
/
AXE_2
= (n1, N2, n3),
[l_R]
),

INFORMATION
=
/
1,
[DEFECT]
/2,
)
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
4/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
3 Operands
3.1 Operand
MESH
MESH = my,
Mesh of the type
[mesh]
on which will amend and/or checks.
3.2 Operand
MODEL
MODEL = Mo,
Concept produced by AFFE_MODELE [U4.41.09] where the types of affected finite elements are defined
on the mesh. This operand is obligatory for key words.
3.3 Operand
INFORMATION
INFORMATION
=
Indicate the level of impression of the results of the operator,
1 =
no impression,
2 =
impression of the meshs whose connectivity was modified, including the impression of
old and new connectivities.
The impressions are done in the file
“MESSAGE”
.
3.4 Key word
ORIE_FISSURE
ORIE_FISSURE
=
This key word is used to reorientate (if necessary) the meshs of a group forming “full-course”
elements. It functions in 2D and 3D [Figure 3.4-a].




Appear 3.4-a
Currently, this key word is useful only in 2D to reorientate the elements of gasket (modelings
AXIS_FISSURE and PLAN_FISSURE).
The user specifies (with key word GROUP_MA) which are the meshs candidates with
reorientation (the “full-course one”).
These meshs must be “prisms” (QUAD in 2D, HEXA and PENTA in 3D).
The “transverse” direction with the layer is given in a topological way (and not according to a criterion
of flatness): the breakages connecting the elements of the layer are declared “transverse”.
This algorithm imposes that the layer is made of several contiguous meshs.
Note:
The “reorientation” about which one speaks here actually consists in modifying the definition of connectivity
meshs. For example, in 2D, convention is that sides 2 and 4 of the quadrangles are
transverses with the layer.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
5/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
GROUP_MA=
l_gm,
List groups of meshs which one wishes the checking (and possibly amendment)
orientation.
3.5 Key word
ORIE_SHB8
ORIE_SHB8
=
The purpose of this key word factor is to correctly reorientate meshs HEXA8 of the finite elements
SHB8.
The connectivity of the meshs thus is possibly modified by this operator.
GROUP_MA=
l_gm,
List groups of meshs which one wishes the amendment of the orientation.
3.6 Key word
DEFORMATION
DEFORM
/
OPTION
= ' TRAN'
Option allowing to add to the initial geometry of the mesh the my values of Translation
(dx, Dy (+ dz in 3D)) field of depl displacement given by key word DEPL.
/
OPTION
= ' TRAN_APPUI'
Option allowing in addition to “TRAN” to reactualize the position of the supports by holding account
deformation of the structure. More precisely:
Initial mesh:


support

structure
The supports are locked for mechanical calculation, only the structure becomes deformed:
Deformation

support

structure
One reactualizes the supports by adding to their co-ordinates the displacement of the nodes of
structure which are to them in opposite. This gives then:
Reactualization

support

structure
support
support
support
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
6/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
The mesh at exit of MODI_MAILLAGE takes into account the deformation of the structure and
reactualization of the supports as explained above
GROUP_NO_STRU = lgrno,
GROUP_NO_APPUI = lgrno,
These obligatory key words make it possible to inform the groups of nodes structure and support
whose nodes must be in opposite (for the contact).
DEPL = depl,
Field of displacement being used to reactualize the geometry
3.7 Key words
ORIE_PEAU_2D/ORIE_PEAU_3D
ORIE_PEAU_2D
=
ORIE_PEAU_3D
=
These key words are used to reorientate meshs of edge being used to apply a pressure in 2D and
3D.
GROUP_MA
= lgrma,
[l_gr_ma]
Groups of meshs to be reorientated.
The meshs are directed in such way that the normal is outgoing. For each mesh of edge
(edge or face), one seeks the voluminal mesh which corresponds to him. One directs it in such way that
its normal is direction opposed to the vector connecting its first node to the barycentre of the mesh.
The MODEL key word is obligatory with these key words.
3.8 Key word
ORIE_NORM_COQUE
ORIE_NORM_COQUE
=
This key word is used to check that in a group of surface meshs (hulls), the normals are
of the same direction (at least for the convex components). In the contrary case, the meshs are
reorientated according to the direction of the found first.
GROUP_MA
= lgrma,
[l_gr_ma]
Surface groups of meshs to reorientate.
One can impose a direction using the key word:
VECT_NORM = (n1, N2, [n3]),
[l_R]
nor: 2 or 3 components (according to dimension) of the normal vector. It is also necessary to specify it
node support of this normal:
/NODE = node,
[node]
/
GROUP_NO
=
grno,
[gr_no]
The MODEL key word is obligatory with ORIE_NORM_COQUE.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
7/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
3.9 Key word
MODI_MAILLE
OPTION = “NOEUD_QUART”,
Activate the displacement of the nodes mediums of the edges touching the bottom of fissure to the quarter of these
edges (towards the bottom of fissure).
/
|
GROUP_MA_FOND = lgma_fo, [l_gr_ma]
|
MAILLE_FOND = lma_fo, [l_maille]
/
|
GROUP_NO_FOND = lgno_fo, [l_gr_no]
|
NOEUD_FOND = lno_fo, [l_noeud]
In 2D, one re-enters the node of the bottom of fissure (by
NOEUD_FOND
or
GROUP_NO_FOND
).
In 3D, one re-enters either the nodes of the bottom of fissure, or meshs SEG3 of the bottom of fissure (and
not meshs of the lips of the fissure or the matter meshs leant with the bottom).
3.10 Key word
PLAQ_TUBE
Caution
This functionality is called by the macro-control
MACR_ASCOUF_MAIL
.
/ | PLAQ_TUBE =
Key word factor for the transformation of the mesh of a plate thickness E and width
2
R
m
in a mesh of tube per rolling up around axis (Z), rotation of an angle
given around
axis (Z) and change of reference mark:
Y
Z
X (side left
if
= 0)
0
R
m
E
Rc
l_tube_p2
l_tube_p1
2
Rm
Z
Y (right side)
X (upper surface)
R
m
E
DEXT =
Of,
Diameter external of the tube
(
)
2R
E
m
+
.
THICK =
E,
Thickness of the tube or the plate.
AZIMUTH
=
Q,
Swing angle in degrees (counted positively starting from the upper surface to the under-surface in
passing by the left side) applied to the tube starting from initial rolling up (useful for
positioning of a fissure defined on the plate). The angle
= 90° corresponds to a fissure
located at the center of the plate and consequently on the left side of the tube.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
8/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
L_TUBE_P1
=
l_tube_p1,
Length of the lower end (intervenes in the change of reference mark). It is recommended
to take an end length higher than the length of damping of the wave of
bending being propagated since the part bends and being worth
L
R
E
amor
m
= 32
3
.
SEAM
=
/
“YES”,
[DEFECT]
/
“NOT”,
In the case of a mesh of a quarter of structure (key word SYME of MACR_ASCOUF_MAIL
for a mesh with only one under-thickness), this key word SEAM is used to prevent it
sticking together (
“NOT”
) at the time of the transformation into tube.
3.11 Key word
TUBE_COUDE
Caution
This functionality is called by macro-control MACR_ASCOUF_MAIL.
|
TUBE_COUDE =
Key word factor for the transformation of the mesh of tube into a mesh of elbow.
Z
X
Y
bend
l_tube_p2
under-surface
upper surface
right side
left side
l_tube_p1
R
C
ANGLE =
,
Angle in degrees of the elbow.
R_CINTR =
Rc,
Value of the radius of bending of the elbow.
L_TUBE_P1
=
l_tube_p1,
Length of the lower end of the tube (intervenes in the change of reference mark). It is
recommended to take an end length higher than the length of damping of
the wave of bending being propagated since the part bends and being worth
L
R
E
amor
m
= 32
3
.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
9/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
3.12 Key word
EQUE_PIQUA
Caution
This functionality is called by macro-control MACR_ASPIC_MAIL.
EQUE_PIQUA =
Key word factor for the transformation of the mesh of thick square into a mesh of pricking.
GROUP_NO
=
square,
[gr_no]
Group nodes undergoing the transformation.

E_BASE
= thickness, [R]
Value thickness of the pipe in the area of connection with the body.
DEXT_BASE
= diameter,
[R]
Value of the diameter external of the pipe in the area of connection with the body.
L_BASE
=
length,
[R]
Value length of the base of the pipe counted starting from surface external of the body.
L_CHANF =
length,
[R]
Value length of the chamfer.
H_SOUD
=
height,
[R]
Value height of the welding counted starting from surface external of the body.
ANGL_SOUD
=
angle,
[R]
Value of the angle of the welding in degrees.
JEU_SOUD = play
,
[R]
Value of the space located between the body and the pipe representing the play of the welding.
E_CORP
=
thickness, [R]
Value thickness of the body.
DEXT_CORP
= diameter,
[R]
Value of the diameter external of the pipe with the top of the chamfer.
AZIMUTH
=
angle,
[R]
Position of the center of the fissure, counted positively starting from axis X of the body.
X_MAX
=
length,
[R]
Value length of the body on both sides of the origin of the reference mark specifying the localization of
torque of effort. This value must correspond to the computed value with a relative precision of
thousandths.
RAFF_MAIL
=
/
“LARGE”,
/
“FINE”,
Is used to indicate if one wants a mesh coarse or fine around the fissure.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
10/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
Maximum dimensions of the body
(
)
X
max
and of the pipe
(
)
Z
max
are calculated starting from the maximum
of the two lengths of damping
Max
R
E
R
E
m
m
3
2
3
3
,
×


noted respectively
LX
max
and
LZ
max
. These lengths of damping are counted starting from the foot of welding (according to
X
) and with
above chamfer (according to
Z
).
In the pipe, one will take for
LZ
max
the maximum of maximum calculated with
Rm
and it
E
corresponding respectively to the base of the pipe or the current part of the pipe, with
above chamfer.
One thus obtains:
X
LX
Z
LZ
max
max
max
max
/
/
=
+
=
+
+
+
1 2
1 2
DEXT_ BASES
DEXT_ CORP
L_ BASES
L_ CHANF
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
11/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
























































Description of the various geometrical parameters of pricking with a welding of the type 1
LZmax
E_BASE
Xmax
Center body
H_SOUD
E_CORP
½ DEXT_CORP
Center
pipe
½ DEXT_BASE
chamfer
L_CHANF
L_BASE
E_TUBU

½ DEXT_TUBU
O
Zmax
saddle
LXmax
extra thickness or
under - thickness
JEU_SOUD
ANGL_SOUD
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
12/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
TYPE =
/“TYPE_1”, [Txm]
/“TYPE_2”,
Defines the position of the welding, cf [U4.PC.10].
/“TYPE_1”
the bevel of the welding is located in the body
/“TYPE_2”
the bevel of the welding is located in the pipe
3.13 Key word
TRANSLATION
Caution
One can combine this functionality with
ROTATION
, but these operations are not
commutative.
One cannot combine this functionality with
SYMMETRY
.
TRANSLATION = (n1, N2, [n3]),
[l_R]
Single-ended spanner word for the translation of a mesh following a vector.

3.14 Key word
ROTATION
Caution
One can combine this functionality with
TRANSLATION
, but these operations are not
commutative. On the other hand, it is not authorized to use
ROTATION
,
MODI_BASE
and
SYMMETRY
at the same time.
ROTATION =
Key word factor for the unspecified rotation of axis of a mesh.
POIN_1
= (nor, N2, [n3]),
[l_R]
Co-ordinates of the first point to define the axis of rotation.
/POIN_2
= (nor,
N2,
[n3]),
[l_R]
/
DIR
= (nor, N2, [n3]),
[l_R]
Co-ordinates of the second point or direction to define the axis of rotation completely.
ENG =
has,
[R]
Swing angle expressed in degrees.
Rotation is done in the direct direction, compared to its directed axis. This axis passes by the point
POIN_1 and its orientation are given, either by vector DIR, or by the vector of origin POIN_1
and of end POIN_2.
Rotation is defined by:
Either M (X, y, Z) a point of space, one imposes a rotation of angle to him
(in radians) of which
the axis passes by P (px, py, pz) and has as a direction D (dx, Dy, dz). Then M becomes Me after
rotation:
(
) (
)
(
)
= +
+ -
+
M
P
PM
PM D D
D PM
cos
cos
sin
1
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
13/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
3.15 Key word
SCALE
Caution
This functionality is usable with
TRANSLATION
and
ROTATION
with which it switches over.
One cannot combine this functionality with
SYMMETRY
.
SCALE = n1,
[R]
Single-ended spanner word for the scaling of a mesh following a reality.
Either M (X, y, Z) a point of the mesh, it will become, by this transformation of report/ratio
n1: Me (n1.x, n1.y, n1.z).
3.16 Key word
MODI_BASE
Caution
This functionality is not authorized with
ROTATION
and
SYMMETRY.
MODI_BASE =
Key word factor for the basic change in which one expresses the co-ordinates of one
mesh.
VECT_X
= (n1, N2, [n3]),
[l_R]
Coordinated first vector of the new base, unspecified standard.
VECT_Y
= (n1, N2, [n3]),
[l_R]
Coordinated second vector of the new base (not used in 2D), also of standard
unspecified.
In 2D, it is enough to give axis VECT_X, and Code_Aster builds the second automatically
vector to define a direct orthogonal base. A test checks if VECT_X is of standard not
null.
In 3D, one checks that VECT_X and VECT_Y are of nonnull standard and one checks that they are
orthogonal. The third vector which supplements the base is built as being the product
vectorial of VECT_X with VECT_Y. One thus makes sure construction of an orthogonal base
direct.
Then, in all the cases (2D and 3D), the vectors of the base are normalized to 1, the user does not have
thus not to be concerned with it. There is thus finally a direct orthonormée base.
In 3D, one thus awaits the data of VECT_X and VECT_Y, the first two vectors of
new base. Then the basic change is defined as:
(
)
(
)
(
)
(
)
(
)
(
)
Z
y
X
M
B
M
B
Z
y
X
Z
y
X
Z
y
X
,
,
,
,
,
,
,
,
,
,
,
,
T
=
=
=
VECT_Z
VECT_Y
VECT_X
VECT_Z
VECT_Y
VECT_X
VECT_Y
VECT_X
VECT_Z
base
of
vectors
by
formed
stamp
:
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
14/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
3.17 Key word
SYMMETRY
Caution
One cannot combine this functionality with
TRANSLATION
,
ROTATION
,
SCALE
and
MODI_BASE
.

NOT
= (n1, N2, [n3])
[l_R]
Punctual coordinates pertaining to the straight line in 2D or the plan in 3D.
AXE_1 = (n1, N2, [n3])
[l_R]
Directing vector of the straight line in 2D or 1
er
vector allowing to describe the plan.
AXE_2
=
(n1,
N2,
n3)
[l_R]
2
Nd
vector allowing to describe the plan.
In 2D, symmetry is done compared to a line, which is in plan OXY. To define this line it
is necessary to give the directing vector of the straight line (
AXE_1
) and a point (
NOT
) pertaining on this line.
In 3D, symmetry is done compared to a plan. To define this plan, it is necessary to give 2 vectors of the plan
(
AXE_1, AXE_2
) and a point (
NOT
) pertaining to this plan.
In all the cases (2D or 3D), symmetry is carried out compared to a plan. In 2D, 2
Nd
vector
necessary to the definition of the plan is fixed at
AXE_2 = (0.0, 0.0, - 1.0)
.
The algebraic distance
between a point M (X, y, Z) and a plan passing by the point Mo (xo, yo, zo) with for
perpendicular vector V = AXE_1
^
AXE_2 = (has, B, c) is:
2
2
2
)
(
)
(
)
(
C
B
has
zo
Z
C
yo
y
B
xo
X
has
+
+
-
+
-
+
-
=
The co-ordinates of the symmetrical point Me of the point M compared to the plan are given by:
OM
V
V
M
O
+
-
=
.
.
2
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
15/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
4
Phase of checking/execution
No additional checking.
One checks the existence of the groups of meshs to be reorientated in the mesh.
background image
Code_Aster
®
Version
7.4
Titrate:
Operator
MODI_MAILLAGE
Date:
11/03/05
Author (S):
J. PELLET
Key
:
U4.23.04-E
Page
:
16/16
Instruction manual
U4.2- booklet: Mesh
HT-66/05/004/A
























Intentionally white left page.