Previous Up Next

10  GROUP F—LOADS

F.10


Object:


These instructions determine the loads. The directive "LOAD" is an alias of the "CHAR" directive.


Syntax:

    "CHARGE"
        < "CONSTANTE"  . . .                 >
        < ndcha  $[  "FACTORISEE"  . . .  ;
                     "PROGRAMMEE"  . . .  ]$ >
        < "ADDF" . . .                       >
        < "SPEC" . . .                       >
        < "FCTE" . . .                       >
        < "FIMP" . . .                       >
        < "FDYN" . . .                       >



ndcha

Number of the temporary disc (logical unit number) where the loads are stored (disk of time-dependent loads). This data is optional: by default ndcha=1.


The various sub-directives, detailed in the following pages, are summarized hereafter:

   1/ Constant loads :
           "CONSTANTE"   $ "GRAVITE"     gx  gy  < gz >            $
                         $ "ROTATION"    omega           /LECTURE/ $

   2/ Factorized loads :
         "FACTORISEE"  <ndfact>  (  |  ( "DEPLA"  . . .  )  |
                                    |  ( "FORCE"  . . .  )  |
                                    |  ( "PRESS"  . . .  )  |
                                 "TABLE"  . . .  )

   3/ Programmed loads :
       "PROGRAMMEE"  ndprog  $  "FORCE"     . . .   $
                             $  "PRESSION"  . . .   $
                                "ROUTINE"   . . .
                             <  "ROUTINE"   . . .   >
   4/ Generalized loads for advection-diffusion calculations (JRC)
       "ADDF"   $  "TIMP" . . . $
                $  "FLUX" . . . $
                $  "QGEN" . . . $
                $  "CONV" . . . $
                $  "RADI" . . . $
                $  "PRES" . . . $
                $  "VELO" . . . $
                $  "BLOQ" . . . $
                $  "VPLA" . . . $
                $  "VLIN" . . . $

   5/ Seismic-like loads for use with spectral elements (JRC)
       "SPEC"  |  "POIN"  . . .   |
               |  "PLAN"  . . .   |
               |  "SISM"  . . .   |


   6/ New Constant loads:
      FCTE  NODE /LECT/ $ FORC f ; MOME m $ VECT x y z

   7/ Imposed time-dependent loads:
      FIMP  NODE /LECT/ $ FORC f ; MOME m $ VECT x y z NUFO nf

   8/ Dynalpy loads:
      FDYN  NODE /LECT/ PZER p0 COEF c VECT x y z ELEM e



Comments:


1/- CONSTANTES


The constant loads act all along the calculation. It is the case of body weight or of a fixed acceleration.


2/- FACTORISEES


The defined loads are multiplied by a coefficient which varies in time and is interpolated from a table:

Q(t) = A * C(t)


3/- PROGRAMMEES


The loads will be read and computed for some elementary times which are fixed a priori by the user in a subroutine given by him (FPROG or PPROG). EUROPLEXUS will then perform a linear interpolation to determine the loads at the precise instants of the calculation.
1/ Constant loads:

FCTE NODE /LECT/ $ FORC f ; MOME m $ VECT x y z
2/ Imposed time-dependent loads:

FIMP NODE /LECT/ $ FORC f ; MOME m $ VECT x y z NUFO nf
3/ Dynalpy loads:

FDYN NODE /LECT/ PZER p0 COEF c VECT x y z ELEM e

4/- FCTE


The constant loads act all along the calculation. It is the case of body weight or of a fixed load.


5/- FIMP


The defined loads are multiplied by a coefficient which varies in time and is interpolated from a table:

Q(t) = A * C(t)


6/- FDYN


These loads are only related to 1-D elements of type TUBE or TUYA.


These instructions are described in detail on the following pages.

10.1  AUXILIARY FILE

F.25


Object:


This directive allows to read the initial conditions data from an auxiliary file.


Syntax:

    "CHARGE"   ndcha  < "FICHIER"   'nom.fic'  >


In certain cases the data may be bulky. It is then recommended to store them on an auxiliary file to shorten the main input data file. The auxiliary file is activated by means of the keyword "FICHIER" that precedes the file name (complete under Unix). In the main data file then only the keywords "CHARGE" "FICHIER" remain.


The auxiliary file (in free format) contains the whole set of load data, except the keyword "CHARGE". To return to the main input data, the auxiliary file must be terminated by the keyword "RETOUR".

10.2  CONSTANT LOADS

F.30


Object:


This directive allows to introduce constant accelerations (most often gravity) during the whole computation. It also gives the possibility to compute a structure in a rotating frame (with a constant rotation speed). Definition of sinusoidal acceleration is available (PERIODE and PHASE). Is is also possible that the acceleration is linear and then keeps a constant value (RAMPE).


Syntax:

       "CONSTANTE"   |[  "GRAVITE"     gx  gy  < gz >  /LECTURE/  ;
                         "ROTATION"    omega           /LECTURE/  ]|
                      <"PERIODE">  Tx   Ty   Tz
                      <"PHASE">  Phix Phiy Phiz
                      <"RAMPE">    tx   ty   tz


gx gy gz

Components of the acceleration or of the gravity.
omega

Rotation speed (rad/s).
Tx Ty Tz

Period of the sinusoidal acceleration
Phix Phiy Phiz

Phase of the sinusoidal acceleration
tx ty tz

Time after which acceleration is constant
LECTURE

Numbers of the concerned nodes.

Comments:


The component < gz> of the acceleration only makes sense for a three-dimensional computation.


Forces due to gravity or the acceleration of a moving frame are applied to the nodes of the structure defined in the directive /LECTURE/.


In the case of a calculation in a rotating frame, it is assumed thet the rotation axis is Oz. The forces applied to the nodes are:

Fx = M  ω2  x 
Fy = M  ω2  y 
Fz = 0 

This force applies to the nodes specified by the following /LECTURE/ directive.


If all nodes are concerned, it is sufficient to put the word TOUS in place of the directive /LECTURE/.


In the case of pipelines, it is important to couple this directive with "INIT" "DEBIT" (page E.120) so as to avoid the transient due to sudden application of gravity.


For the tubes and the pipelines, the rotation constant charge does not make sense. Note that, although there is just one d.o.f. for the elements of type TUBE, the gravity vector may have an arbitrary orientation.


For a sinusoidal acceleration, the amplitud is defined by the component of the acceleration and is multiply by a sinus function. The user has to define the period of the function and the phase. If a component is not exited, the period and the phase for this component have to be zero.


The ramp acceleration is defined by a linear part that starts from zero at the initial time and then grow linearly to pass by the point tx=gx (for example). Then after tx, the acceleration is kept constant at a gx level. If a component is not exited, the time for this component has to be zero.

10.3  FACTORIZED LOADS

F.40


Object:


This directive allows to input loads varying in time, of the following type: Q(t) = A * C(t), with:


- A as a base value (displacement, force or pressure);


- C(t) as a coefficient whose values, depending on time, are supplied by a table.


Syntax:

    "FACT"  ndfact
           (     ( "DEPLA"  . . . )
                 ( "FORCE"  . . . )
                 ( "PRESS"  . . . )
                 ( "ACCE"   . . . )

                 "TABLE" . . .
            )


ndfact

Number of the disc (logical unit number) on which the data of the factorized loads are stored. This data is optional: by default ndfact=2.

Comments:


The instruction "FACT" cannot be used more than once.


On the contrary, the sequence terminating with the "TABLE" directive may be repeated as many times as necessary.


Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

10.3.1  DISPLACEMENT

F.50


Object:


This option enables displacements depending on time to be prescribed.


Syntax:

    "DEPLA"  /LECDDL/  d0  /LECTURE/


LECDDL

Reading procedure of the numbers of the degrees of freedom concerned.
d0

Base value of the imposed displacement. The instruction "TABL" must follow to determine the variation in time, even for constant displacements (see note below).
LECTURE

Numbers of the nodes concerned.

Comments:


The displacements of the nodes defined by the procedure LECTURE and along the directions determined by LECDDL, are of the following type:

D(t) = D0 * C(t)


C(t) is provided by the first array met after that option (see "TABL").


That option can be used as many times as necessary .


If the imposed displacement is a blockage (d0 = 0), it is better to use the option "BLOQUE" of the instruction "LIAISON" (page D.30).


Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

10.3.2  FORCE

F.60


Object:


This option enables nodal forces, varying in time, to be imposed.


Syntax:

    "FORCE"  /LECDDL/  f0  /LECTURE/


LECDDL

Reading procedure of the numbers of the degrees of freedom concerned.
f0

Base value of the imposed force. The instruction "TABL" must follow to determine the variation in time, even for constant forces (see note below)
LECTURE

Numbers of the nodes concerned.

Comments:


The forces applied to the nodes defined by the procedure LECTURE and according to the directions determined by LECDDL, have an intensity of:

F(t) = F0 * C(t)


C(t) is provided by the first array (TABLE) met after that option (see "TABL", page F.150).


That option may be used as often as necessary.


For an textbfaxisymmetric computation, the force must be divided by 2π:

                       real force
                 F0 = --------------
                           2*pi

Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

10.3.3  PRESSURE

F.80


Object:


This option introduces a pressure which is exerted on a segment set (2-dimensional case) or on a surface composed of shell elements (2-dimensional or 3-dimensional case), or on the faces of solid elements (3-dimensional case).


Syntax:

    "PRESSION"
        | ( "SEGMENT"  . . . ) |
        | ( "COQUE"    . . . ) |
        | ( "FACE"     . . . ) |
        | ( "NODE"     . . . ) |
        | ( "ELDI"     . . . ) |



Comments:


The word "PRES" is the first keyword of the option.


There is no need to repeat "PRES" to re-define a new line or surface corresponding to the same table (the one which immediately follows the word "PRES").


On the contrary, it is compulsory to define again the word "PRES" if it is necessary to create lines or surfaces relative to another table.

SEGMENT PRESSURE

F.90


Object:


This directive is mainly used to apply a pressure to 2D continuum elements (in 3D cases, use PRES FACE). It allows to enter a pressure which is exerted on a certain number of adjacent segments or lines, in the case of 2-dimensional computation. The pressure may vary in time (factorized loads) or be hydrostatic.


Syntax:

    "SEGMENT"  |[   p0                 ;
                  "HYDRO"  rho  g  z0  ]|  /LECTURE/


p0

Base value p0 of the pressure. The instruction TABL must follow to determine the variation in time, even for constant pressures (see note below).
HYDRO

Keyword that announces a hydrostatic pressure. The pressure field is generated by the presence of a “vertical” acceleration of gravity, acting along the y-axis in 2D or the z-axis in 3D.
rho

Density ρ of the liquid which generates the pressure.
g

Acceleration of gravity g applied to the fluid in the “vertical” direction, i.e. along the y-axis in 2D or the z-axis in 3D. The value should normally be negative (see also comments below).
z0

Vertical level z0 of the free surface of the fluid, supposed horizontal.
LECTURE

Numbers of the nodes composing the pressure line. Each couple of subsequent nodes forms a segment. For example, if the list contains the three indexes 25, 4, 39, then two segments are considered: (25, 4) and (4, 39). Special care must be taken if one uses the name of GIBI object(s) to define the line(s) subjected to pressure, see comments below.

Comments:


The user has the choice between a pressure p0 which varies in time and a hydrostatic pressure. It is not allowed to define both at the same time without re-using the word SEGM.


For a defined basic value p0, the pressure intensity is:

p(t) = p0 C(t)


C(t) is provided by the first array (TABL) met after the option PRES (see also TABL).


If a hydrostatic pressure is defined (keyword HYDR), the pressure is only applied to the segments of the line at levels z, such that:

g (z − z0) ≥ 0


From the previous expression it appears that, since the hydrostatic pressure should be exerted on segmentes at z<z0, then the value of g specified should normally be negative.


Moreover, the intensity of the pressure is:

p = ρ g (z − z0)


The values ρ, g, z0 may be negative.


Each new option SEGM defines a different line.


If the line of segments is defined by giving the name of a GIBI object, make sure that the line is oriented, i.e. that the nodes are listed from one extremity to the other in the correct order (not randomly, as it may sometimes occur in some mesh generators).


If there is more than one line, and the lines are disjoint from one another (i.e. the final node of one line is not the initial node of the next one), then the PRES directive must be repeated (one directive for each line). Otherwise, a “spurious” segment joining the final node of a line to the initial node of the next one in the list would also be considered as subjected to pressure. This is particularly dangerous if more than one GIBI object is listed in the same LECT. In case of doubt, it is always safer to use a separate PRES directive for each line.


Sign of the pressure:


The order in which the points of the line are read by means of the procedure LECT, defines the orientation of the contour of that line. The normal vector (n) results from a rotation of π/2 of the contour itself.


Positive values will create forces in the orientation of the normal (n) thus obtained.


Warning:


The keyword TABL is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form TABL 2 t1 v t2 v, where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

SHELL PRESSURE

F.110


Object:


This directive is mainly used to apply a pressure to 2D or 3D shell elements. For two- or three-dimensinal computations, this option enables a pressure to be entered, which is exerted on a surface composed of shell elements. The pressure may vary in time (factorized loads) or be hydrostatic.


Syntax:

    "COQUE"  |[    p0     ;
                 "HYDRO"  rho  g  z0              ;
                 "HYDRO"  rho  gx gy gz  x0 y0 z0 ]|  /LECTURE/


p0

Base value of the pressure (non hydrostatic case). The instruction "TABL" must follow to determine the variation in time, even for constant pressures (see note below).
HYDRO

Hydrostatic pressure.
rho

Density of the fluid which generates the pressure.

For two-dimensional computations:
g

Acceleration applied to the fluid.
z0

Level of the free surface, which is supposed horizontal.
LECTURE

Numbers of the shell elements submitted to the pressure.

For three-dimensional computations:
gx, gy, gz

Components of the acceleration vector (G) which is applied to the fluid.
x0, y0, z0

Coordinates of a point located on the surface supposed horizontal.
LECTURE

Numbers of the shell elements submitted to the pressure.

Comments:


The user has the choice between a pressure p0 which varies in time and a hydrostatic pressure. It is impossible to define both at the same time, without re-using the word "COQUE".


If a basic value p0 has been defined,the pressure intensity is:

P(t) = P0 * C(t)


C(t) is provided by the first array met after the option "PRESS" (see TABLE).


If a hydrostatic pressure is defined (keyword HYDR), the pressure is applied to the points on the surface of coordinates X,Y,Z such that :

gx * (x-x0) + gy * (y-y0) + gz * (z-z0) > 0 ( or= 0 )


The pressure intensity will be for these points:

P = rho * ( gx * (x-x0) + gy * (y-y0) + gz * (z-z0) )


In a two-dimensional case, the definition of the hydrostatic pressure is the same as for the sub-directive "SEGMENT".


For a three-dimensional computation, see the definition of hydrostatic pressure with the sub-directive "FACE".


Each new option "COQUE" defines a new pressure surface.


Sign of the pressure:


The normal vector on the surface is oriented according to the numeration of the shell nodes. Positive pressures will create forces in the orientation of that normal.


The orientation of the normal is given by the following rule (Maxwell’s cork-screw rule). An observer placed at the centre of the shell element which is crossed by the normal from the bottom to the top, must be able to notice that the shell element is numbered in increasing order, by rotating in a trigonometric sense (anticlockwise).


Warning:


If the mesh developped by means of "COCO" is used, the elements are not necessarily oriented in the same way (this has to be explicitly requested).


If the mesh is entered by the user, all elements have to be numerated so that their orientation is coherent. A shell surface composed of elements which are oriented in a different way, may produce errors and confusion concerning the direction of the pressures from the data point of view as well as from the results.


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

FACE PRESSURE

F.130


Object:


This directive is mainly used to apply apressure to 3D continuum elements. For a three-dimensional computation, this option enables a pressure to be entered, which is exerted on a surface composed of the sides of solid elements. The pressure may vary in time (factorized loads) or be hydrostatic.


Syntax:

    "FACE" iface  |[    p0                             ;
                      "HYDRO"  rho  gx gy gz  x0 y0 z0 ]|  /LECTURE/


iface

Number of the side (face) of the elements read by the procedure. LECTURE
p0

Base value of the pressure (non hydrostatic). The instruction "TABL" must follow to determine the variation in time, even for constant pressures. (see note below).
HYDRO

Hydrostatic pressure.
rho

Density of the fluid which generates the pressure.
gx, gy, gz

Components of the acceleration vector (G) applied to the fluid.
x0, y0, z0

Coordinates of a point of the free surface which is supposed horizontal.
LECTURE

Numbers of the elements submitted to the pressure.

Comments:


The user has the choice between a pressure P0 which varies in time and a hydrostatic pressure. It is impossible to define both at the same time without re-using the word "FACE".


For a defined basic value P0, the intensity of the pressure is:

P(t) = P0 * C(t)


C(t) is provided by the first array met after the option "PRESS" (see TABLE).


Hydrostatic pressure:


If a hydrostatic pressure is defined (keyword HYDR), it is applied to the points of the pressure surface of coordinates X,Y,Z such that:

gx * (x-x0) + gy * (y-y0) + gz * (z-z0) > 0 ( or = 0 )


For these points, the intensity is:

P = rho * ( gx * (x-x0) + gy * (y-y0) + gz * (z-z0) )


The free surface of the liquid is composed of the plane which passes through the point M0 of coordinates (x0, y0, z0) and perpendicular to the vector (G) whose components are : (gx,gy,gz).


If the vector (G) is drawn with the point M0 as origin, the pressure will be applied to the points M of the pressure surface which are located in the half-space containing (G).


The pressure intensity at point M is:

P = rho * g * h


Here h represents the distance between M and the free surface; g represents the gravity.


The vector (G) with its 3 components enables the surface of a liquid (horizontal) to be entered, when the vertical axis of the mesh is distinct from the physical vertical line. In this case, the surface is an inclined plane in the coordinate system of the mesh.


Each new definition of the option "PRES" "SEGMENT" generates a new pressure surface.


Sign of the pressure:


The normal to the face of an element is the outward normal of that element. A positive pressure creates a force in the orientation of that normal.


Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

NODE PRESSURE

F.140


Object:


This directive is mainly used to apply a pressure to continuum elements (2D or 3D). This option enables a pressure to be entered, which is exerted on a surface composed of the nodes belonging to the edge of structure. The pressure may vary in time (factorized loads) or be hydrostatic.


Syntax:

      "NODE"      |[    p0                             ;
                      "HYDRO"  rho  gx gy gz  x0 y0 z0 ]|  /LECTURE/


p0

Base value of the pressure (non hydrostatic). The instruction "TABL" must follow to determine the variation in time, even for constant pressures. (see note below).
HYDRO

Hydrostatic pressure.
rho

Density of the fluid which generates the pressure.
gx, gy, gz

Components of the acceleration vector (G) applied to the fluid.
x0, y0, z0

Coordinates of a point of the free surface which is supposed horizontal.
LECTURE

Numbers of the nodes belonging to the edge of structure, submitted to the pressure.

Comments:


The user has the choice between a pressure P0 which varies in time and a hydrostatic pressure. It is impossible to define both at the same time without re-using the word "NODE".


For a defined basic value P0, the intensity of the pressure is:

P(t) = P0 * C(t)


C(t) is provided by the first array met after the option "PRESS" (see TABLE).


Hydrostatic pressure:

This directive is decribed in 10.3.3 (page F.130).


Sign of the pressure:


The normal to the face of an element is the outward normal of that element. A positive pressure creates a force in the orientation of that normal.


Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

PRESSURE ON DISCRETE ELEMENTS

F.142


Object:


This directive is used to apply pressure on the outer surface of a cylinder made of discrete elements (ELDI). The pressure may vary in time (factorized loads).


Syntax:

      "ELDI"      |[   p0 ;
                      "PAX1"  x1 y1 z1
                      "PAX2"  x2 y2 z2
                      "RAD "  r
                      <"TOLE"  tol>  ]|  /LECTURE/
p0

Base value of the pressure. The instruction "TABL" must follow to determine the variation in time, even for constant pressures (see note below).
PAX1, x1, y1, z1

Coordinates of the first point defining the axis of the cylindre.
PAX2, x2, y2, z2

Coordinates of the second point defining the axis of the cylindre. WARNING: PAX1 and PAX2 define the direction of the cylinder’s axis but are also used as the height to calculate the area of its surface. So, the distance between the two points must be equal to the cylinder’s height.
RAD rad

Cylinder’s radius.
TOLE tol

Pressure is only applied on the elements that are tangent to the outer surface of the cylinder. Tol value defines the relative precision considered to determine whether the element is tangent or not. Default value: 1E-2.
LECTURE

Group of discrete elements where the search of tangent elements is done.



Comments:

A procedure selects the elements that are tangent to the outer surface of the cylindre. For each selected element, the pressure application area is calculated with the element’s radius r. In fact, we consider this area is the area of the circle of radius r (A=r2).


For a defined peak value P0, the intensity of the pressure is:

P(t) = P0 * C(t)

So, for each selected element, the applied force modulus is:

F(t) = P(t) * A

This force is applied in the direction of the normal vector V to the cylinder at the considered element. C(t) is provided by the first array met after the option "PRESS" (see TABLE).


Forces adjustment:

In practice, the sum of selected elements’ areas is always significantly lower than cylinder’s surface area. An adjustment is done to correct this point by multiplying the calculed force by the ratio of the cylinder’s outer surface area and the sum of the selected elements cross section areas.


Sign of the pressure:

The normal to the cylinder outer surface at the considered element is the outward normal. A positive pressure creates a force in the direction of that normal.


Warning:

The instruction "TABL" is mandatory. For the case of charges that are constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

10.3.4  ADDITIONAL ACCELERATION

F.145


Object:


This option enables additional acceleraration depending on time to be prescribed.


Syntax:

    "ACCE"  /LECDDL/  g0  /LECTURE/


LECDDL

Reading procedure of the numbers of the degrees of freedom concerned.
g0

Base value of the acceleration to be added. The instruction "TABL" must follow to determine the variation in time, even for constant displacements (see note below).
LECTURE

Numbers of the nodes concerned.

Comments:


The external forces applied on the nodes defined by the procedure LECTURE and along the directions determined by LECDDL, are of the following type:

F(t) = g0 * M * C(t)


M is the nodal mass. C(t) is provided by the first array met after that option (see "TABL").


That option can be used to enter gravity like forces depending on time (for example, deceleration forces inside a tank during a crash).


Warning:


The instruction "TABL" is mandatory. For the case of charges constant in time, just give a two-entry table with the same value in both entries, i.e. of the form "TABL 2 t1 v t2 v", where v is the (constant) value, t1 is less or equal to the initial time of the computation and t2 is greater or equal to the final time of the computation.

10.3.5  TABLE

F.150


Object:


The tables provide the different values of the coefficients C(t) which appears in the options of the instruction "CHARGE FACTORISEE" (factorised load).


The C(t) functions are continuous, linear by parts and therefore defined by points. They can linearly interpolate more complex functions.


Syntax:

    "TABLE"   npts*( tk  ck )


npts

Number of couples (tk, ck) defining the table.
tk

Elementary time.
ck

Multiplying factor at the time tk: ck=C(tk).

Comments:


Each array refers to the options "DEPL", "FORC", "PRES" which are defined in the data set before the table and follow the preceeding table, if it exists. The first table refers to all options defined after the key-word "FACT". It is not allowed to have two consecutive tables in the data set.


If the time t1 = 0 is not specified in the table, the point of origin (0, 0) is assumed to belong to the curve.


The last time used in the array must be greater than the final time of the computation.

10.4  PROGRAMMED LOADS

F.180


Object:


This option enables the user to enter forces or pressures applied to certain nodes or certain elements of the structure, for time instants defined by the user himself.


In this case, the values are defined at each time by linear interpolation.


Syntax:

       "PROG"  ndprog    $  "FORCE"    . . .      $
                         $  "PRESSION" . . .      $
                            "ROUTINE"  . . .
                         <  "ROUTINE"  . . .      >


ndprog

Number of the disc (logical unit number) where the programmed loads are stored. This disc is temporary (the data is destroyed after the creation of a disc of loads depending on time ndcha).

Comments:


The word "PROG" is the first key-word of the option. It may be used only once in the EUROPLEXUS data set.


There are 2 subdirectives "PRES" and "FORC" which respectively enable pressures or forces to be input.


For each of them, the user has to initially provide a list, which contains according to the circumstances:


- The numbers of the nodes defining the pressure line or the numbers of the elements to which pressures are applied.


- The numbers of the degrees of freedom and the numbers of the nodes to which forces are applied.


The list is entered by the means of the pocedures LECTURE and LECDDL.


There are three ways to enter the values of the forces and pressures at the different time increments.


1/- The user directly inserts, into the data set, the cards which each correspond to one time increment. Each card successively contains :


- The value of the time increment concerned.


- The values of the pressures and forces determined according to the preceeding list.


2/- The user has at his disposal or creates a data file with an imposed standard writing format. The file must successively store several sets of values, each corresponding to one time increment. Each set sequentially defines :


- The value of the time increment concerned


- The values of the pressures and forces determimed in the same way as the cards.


3/- Regarless of the program, the user provides a subroutine which computes the values of the forces or pressures for each time increment before the program runs. These values are stored in array F or P according to the list.


The data can be read on a file the format of which is not standard, or the values can be directly entered by the means of an analytic formula chosen by the user.


The keywords "ROUTINE" introduce respectively the data associated with each of the subroutines FPROG and PPROG, written by the user.


ATTENTION: the data relative to FPROG are read first.


If there are only forces (or only pressures), a single keyword "ROUTINE" is sufficient to introduce the corresponding data.

10.4.1  FORCE

F.210


Object:


For each time increment, this option enables nodal forces to be applied to certain nodes of the structure and according to certain directions (degrees of freedom).


Syntax:

       $ "FORCE" "DDL" /LECDDL/  /LECTURE/  ...              $
       $ "MXTF" ntmax  | "CART" ( "INST" ti f1 ... fn ) |    $
       $               | "BAND"  nb                     |    $
       $               | "ROUTINE"                      |    $


LECDDL

Reading procedure of the degrees of freedom to which the forces are applied.
LECTURE

Reading procedure of the numbers of the nodes to which the forces are applied.
ntmax

Maximum number of time instants for which the loads are defined.
CART

Keyword which enables the input of cards.
BAND

Keyword which enables the data on a file to be read.
nband

File number.
ROUT

Keyword which enables the user to provide a computation subroutine. After the word ROUT, and on a new card, the user can, if he wants, provide the data which is read by the subroutine in the order of the writing.

Comments:


The directive "FORCE" may be used at most once.


For an axisymmetric calculation, the forces must be divided by 2π, since the calculation refers to ONE radians.


The elements of the list defined by LECDDL and LECTURE are stored according to their nodes and each node according to its degree of freedom, in the order of their definitions in the procedures LECTURE and LECDDL.


For example :

"FORC" "DDL" 123 "LECT" 7 8 10 "TERM"


will define the list n(1,7) n(2,7) n(3,7) n(1,8) n(2,8) n(3,8) n(1,10) n(2,10) n(3,10) where n(i,j) represents the i th degree of freedom of the node j . The 7 th element of this list is the first degree of freedom of the 10 th node.


The parameter ntmax represents the maximum number of time increments for which the loads are defined. At the most ntmax cards or ntmax data sets can be read on the file. If a subroutine is entered, it is used ntmax times.


The user must choose between 3 input modes for the data :

CARD ( "CART" )

FILE ( "BAND" )

SUBROUTINE ( "ROUTINE" )

Only one can be used.


File:


The parameter nband repesents the number of the file from which the data is read. The file has been first defined at the level of the control cards.


The different sets of values are written on that file. Each set contains:


- the value of the time increment to which the data of the set is associated;


- the values of the forces F(j,t), as for the cards.


The number of the values F(j,t) must corresponds to the number of the elements defined in the LECDDL-LECTURE list, that is to say s values ( s : number of nodes ; x : number of degrees of freedom). The j th value F(j,t) represents the value of the force applied to the node at time t, according to the direction defined by the j th element of the list.


The values are written on the file unformatted.


If the user reaches the end of the file before he has read all nt value sets, EUROPLEXUS considers that there are no more values to be read. In this case, the loading is finished and the program goes to the next option or instruction.


If there are more than nt data sets, the loading is considered as finished after the reading of the nt th set.


In both cases, the last time increment must be greater than the final time of computation defined in the instruction "CALCUL".


The reading of the nband number leads EUROPLEXUS to read the file automatically.


Subroutine:


The key-word "ROUT" must be the last data of the card. It automatically calls the user’s subroutine. At the most, the latter will be used nt times (but if he wants, the user can stop the subroutine before the nt th . After each call, the subroutine provides the EUROPLEXUS program with an array (F or P) which contains as many values as elements defined in the LECDDL-LECTURE list. The j th value of the table is the value of the node to which a force is applied according to the direction determined by the j th element of the list. If he wants, the user can provide, after the word "ROUTINE", the data which are written on new cards. This data is read sequentially and in the order required by the subroutine. For more explanations, see the chapter "PROGRAMMED LOADS-SUBROUTINE".

10.4.2  CARDS

F.240


Object :


This suboption enables loads (forces or pressures) to be read on cards.


Syntax :

        "CARTES" ( "INSTANT" ti f1 ... fs ) "TERMINE"


INSTANT

First keyword of each card.
ti

Time instant to which the data of the card is associated.
f1 ... fs

Value of the force applied to the node and degree of freedom defined at the j th place of the list entered by LECDDL-LECTURE, at time ti. There are s fj values per card (s representing the product of the number of degrees of freedom and the number of nodes).
TERMINE

This key-word denotes that there is no more data to be read. The loading is finished and the program takes the next option.

Comments:


At the maximum, the word "INSTANT" is written nt times.


Each card must include, after the value of the time increment ti, as many fj values as elements defined in the LECDDL-LECTURE list, that is to say s values. The j th fj value is the value of the force which is applied, at time ti, to the node and according to the direction defined by the j th element of the list. All the numerical values are read in free format.


The word "TERM" indicates that there is no more data to be read. The program considers the loading as finished and takes the next option or instruction.


The last time increment to be read must be greater than to the final time of computation defined in the instruction "CALCUL".


The word "CARTE" leads EUROPLEXUS to read the cards automatically.

10.4.3  PRESSURE

F.260


Object:


This option enables the following to be entered for each time instant:


- a pressure which is exerted on a set of adjacent segments or "pressure line", for two-dimensional computations.


- a pressure which is exerted on shell elements defining a surface, for two- and three-dimensional computations.


- a pressure which is exerted on the faces of solid elements defining a "pressure surface".


Syntax:

       $ "PRESS"       | "SEGM" /LECTURE/         |  ...     $
       $               | "COQU" /LECTURE/         |          $
       $               | "FACE"  iface  /LECTURE/ |          $
       $ "MXTP" ntmax  | "CART" ( "INST" ti f1 ... fn ) |    $
       $               | "BAND"  nb                     |    $
       $               | "ROUTINE"                      |    $


SEGM

This concerns two-dimensional computations; the user enters a pressure line. Then, the procedure LECTURE is used for the input of the numbers of the nodes composing the line. On the whole, there are s + 1 nodes defining s segments.
COQU

This concerns two- or three-dimensional computations; the user enters a surface composed of shell elements. Then, the numbers of the shell elements are entered by the procedure LECTURE.
FACE

This concerns three-dimensional computations; the user enters a surface composed of the faces of solid elements.
iface

Number of the solid element face belonging to the surface. In this case, the procedure LECTURE is used for the input of the solid elements concerned.
ntmax

Maximum number of time instants where the pressures are defined.

Comments:


The input syntax of the data is the same as for the "PROGRAMMED FORCES".


The words "CART" "BAND" "ROUTINE" and the parameters ntmax and nb have the same signification as for the "PROGRAMMED FORCES".


As for the latter, the j-th value defined after the time increment, on the cards or in the data sets written on the file, gives the value of the pressure which is exerted, at that time increment, on the j-th element of the list provided by the procedure LECTURE.


The j th element of the array provided by the subroutine has the same meaning (see the chapter "PROGRAMMED FORCES").


For a two-dimensional computation, the options "SEGM" and "COQU" can be used one after the other.


For example :

        "PRES"  "SEGM"  "LECT" 1 2 3 4 "TERM"
                "COQU"  "LECT" 9 13 18 "TERM"


The list given by the two procedures LECTURE is respectively composed by the 3 segments 1-2 2-3 3-4, and by the 3 shells 9 13 18. The 6-th element of the list represents the shell number 18.


For three-dimensional computation, the options "COQU" and "FACE" can be used one after the other.


For example :

        "PRES"  "COQU"  "LECT" 9 10 25  "TERM"
                "FACE" 3 "LECT" 16 2 12 "TERM"


The list given by the two procedures LECTURE is respectively composed of the shell elements 9 10 25, and the solid elements 16 2 12. The 4-th element of the list repesents the solid element number 16.


If there are two procedures LECTURE, the list which must take into account the values of the cards, data sets or tables may be obtained by putting the 2 lists defined by the procedures end to end, in the order of their definitions ( the second list follows the first).


If he wants, the user can define several times the words "SEGM" "COQU" or "COQU" "FACE" with the corresponding lists, and in any order. The principle used to obtain the final list on which the loads are defined is the same one used if there are only two LECTURE procedures.


Examples:

        1/ 2-D     "PRES"  "SEGM"  /LECTURE/
                   "COQU"  /LECTURE/
                   "SEGM"  /LECTURE/

        2/ 3-D     "PRES"  "FACE" 1 /LECTURE/
                   "COQU"   /LECTURE/
                   "FACE" 4 /LECTURE/


For the conventions relative to the pressure signs, see the chapter on FACTORIZED LOADS and the corresponding options.

10.4.4  ROUTINE

F.290


Object:


This is a FORTRAN subroutine provided by the user and compiled independently from the program.


There is one subroutine for the forces (FPROG) and one for the pressures (PPROG). For each time increment, these subroutines create an array (F for forces and P for pressures), containing the values of the forces and the pressures according to the list supplied by the LECDDL - LECTURE procedures of the options "PROG" "FORC" or "PROG" "PRES".


Syntax:


1. Programmed forces :

     SUBROUTINE FPROG(KAR,IMP,IPT,T,N,NUF,FEP,TAB)
     IMPLICIT DOUBLE PRECISION(A-H,O-Z)
     DIMENSION FEP(*),TAB(*),NUF(2,*)
     . . .
       FORTRAN data set to compute the forces
     . . .
     RETURN
     END


2. Programmed pressures :

     SUBROUTINE PPROG(KAR,IMP,IPT,T,N,IPOS,NUP,PRP,PRF,TAB)
     IMPLICIT DOUBLE PRECISION(A-H,O-Z)
     DIMENSION IPOS(N),NUP(*),PRP(*),PRF(N),TAB(*)
     . . .
       FORTRAN data set to compute the pressures
     . . .
     RETURN
     END
KAR

Input variable. At the origin, it is a number of the file the value of which is 0 by default (card reader). It can be read or defined again inside the subroutine. If KAR is negative at the exit of the subroutine EUROPLEXUS considers that the loading is finished and stops the operation.
IMP

Input variable, number of the output (listing) file. It may be used to write messages to the listing. The value of IMP cannot be defined again inside the subroutine.
IPT

Input variable. It is a pointer which is increased by 1 by PLEXIS-3C after each use of the subroutine. IPT is equal to 1 at the first call. The value of IPT cannot be defined again inside the subroutine.
T

Output variable. At the exit of the subroutine T must be equal to the value of the elementary time linked to the values of the forces and the pressures (array FEP or PRP).
FEP or PRP

Output arrays. At the exit of the subroutine, they must respectively mention the values of the forces and the pressures, according to the list provided by the procedures LECDDL and LECTURE of the options "PROG" "FORC" and "PROG" "PRES".
N

Input variable equal to the number of the elements on the list. The arrays FEP and PRP are automatically dimensioned at N. The value of N must not be defined again inside the subroutine.
NUF

Indexes of nodes and ddls where a force is applied. NUF(1,K) = number of k-th node in the list; NUF(2,K) = associated ddl.
IPOS

Pointer on NUP and PRP: KDEB = IPOS(I) : address of beginning of face I; KFIN = IPOS(I+1) - 1 : address of the end of face I; NBNF = IPOS(I+1) - IPOS(I) : number of nodes of face I.
NUP(KDEB:KFIN)

Indexes of nodes of face I.
PRP(KDEB:KFIN)

Pressures on nodes of face I.
PRF

Work array (dimension N). For example, pressures applied on the N faces at time T.
TAB

Work array. It enables (if necessary) to store values during the run of the subroutine (see example).

Comments:


The user’s subroutine is called automatically nt times (nt is the maximum number of elementary times). It has been defined in the options "PROG" "FORC" and "PROG" "PRES".


However the user can stop the calling sequences before having achieved nt calls, by giving a negative value to NB at the exit of the subroutine (the call relative to the negative definition of NB is not taken into account).


If the user wants to define loads for n elementary times, with n inferior to nt, the value of NB must be negative at the (n+1)-th call. In any case, the last elementary time which has been computed must be superior to the final time of computation defined in the instruction "CALCUL".


SAMPLE ROUTINE FPROG

F.300


Here is the sample routine FPROG contained in the program:

C FPROG     SOUPLEX   LPRE      91/06/07    19:19:31
      SUBROUTINE FPROG(KAR,IMP,IPT,T,N,NUF,FEP,TAB)
C
C  OBJET : LIRE LES FORCES AUX NOEUDS POUR UN INSTANT CONSIDERE
C  -----
C
C ===> EN RETOUR : CHARGER T ET REMPLIR  FEP CORRECTEMENT
C
C     KAR  : NUMERO DU FICHIER DE LECTURE ET INDICATEUR D'ARRET
C     IMP  : NUMERO DU FICHIER DE SORTIE (IMPRIMANTE)
C     IPT  : NUMERO DE L'INSTANT CONSIDERE
C     T    : VALEUR DU TEMPS CONSIDERE
C     N    : NOMBRE DE NOEUDS OU UNE FORCE EST APPLIQUEE
C     NUF(1,K) : NUMERO DU KIEME NOEUD DE LA LISTE
C     NUF(2,K) : DDL CONCERNE
C     FEP(K)   : FORCE CORRESPONDANTE
C     TAB  : TABLEAU DE TRAVAIL (DIM AJUSTABLE AVEC "TRAV" )
C
C ===> IMPORTANT : NE PAS MODIFIER  IPT, N, NUF.
C
C     SI KAR EST MIS < 0 , ON ARRETE LA LECTURE AVANT D'AVOIR EPUISE
C     TOUS LES INSTANTS PREVUS
C
C
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C
      CHARACTER*(10) MOT
C
      PARAMETER (NFORC=20)
C
      DIMENSION NUF(2,*),FEP(*),TAB(NFORC,2)
      DIMENSION X(3)
C
C
      IF(KAR.LE.0) RETURN
C
      READ (KAR,*) MOT
      IF(MOT.EQ.'TERMINE') GOTO 91
      IF(MOT.NE.'INSTANT') GOTO 90
C
C---   LECTURE D'UN BLOC  (A T DONNE : NP COUPLES R,F )
      READ (KAR,*) T,NP
      IF(NP.GT.NFORC) GOTO 88
      READ (KAR,*) (TAB(K,1),TAB(K,2),K=1,NP)
C
      WRITE (IMP,*) ' ===> INSTANT : ',T
      CALL DPRINT(IMP,NP,TAB(1,1),'RAYON')
      CALL DPRINT(IMP,NP,TAB(1,2),'VALEUR')
C
C---   COORDONNEES DU CENTRE :
      XC=0
      YC=0
C
C---   CALCUL DES FORCES PAR INTERPOLATION LINEAIRE
      DO 50 K=1,N
      NUPO=NUF(1,K)
      CALL QUIDNE(0,NUPO,LON,X)
      IF(LON.NE.3) GOTO 89
      DX=X(1)-XC
      DY=X(2)-YC
      R=SQRT(DX*DX+DY*DY)
      CALL DITPL1(NP,TAB(1,1),TAB(1,2),R,F,DFSDR,NX,IER)
      IF(IER.NE.0) GOTO 87
      FEP(K)=F
  50  CONTINUE
      RETURN
C
C---   ERREURS ET SORTIE
  87  CALL ERRMSS('FPROG','INTERPOLATION INCORRECTE')
      STOP
  88  CALL ERRMSS('FPROG','IL Y A TROP DE VALEURS')
      STOP
  89  CALL ERRMSS('FPROG','IL N Y A PAS 3 COORDONNEES')
      STOP
  90  CALL ERRMSS('FPROG','SYNTAXE INCORRECTE')
      STOP
  91  KAR=-KAR
      RETURN
C
      END

SAMPLE ROUTINE PPROG

F.305


Here is the sample routine PPROG contained in the program:

C PPROG     SOUPLEX   LPRE      91/06/07    19:19:12
      SUBROUTINE PPROG(KAR,IMP,IPT,T,N,IPOS,NUP,PRP,PRF,TAB)
C
C  OBJET : LIRE LES PRESSIONS AUX NOEUDS POUR UN INSTANT CONSIDERE
C  -----
C
C ===> EN RETOUR : CHARGER T ET REMPLIR  PRP CORRECTEMENT
C
C     KAR  : NUMERO DU FICHIER DE LECTURE ET INDICATEUR D'ARRET
C     IMP  : NUMERO DU FICHIER DE SORTIE (IMPRIMANTE)
C     IPT  : NUMERO DE L'INSTANT CONSIDERE
C     T    : VALEUR DU TEMPS CONSIDERE
C     N    : NOMBRE DE FACES SOUS PRESSION
C     IPOS : POINTEUR SUR NUP ET PRP :
C               KDEB = IPOS(I) : ADRESSE DU DEBUT DE LA FACE I
C               KFIN = IPOS(I+1)-1 : ADRESSE DE LA FIN DE LA FACE I
C               NBNF = IPOS(I+1)-IPOS(I) : NBR DE NOEUDS DE LA FACE I
C     NUP(KDEB:KFIN) : NUMEROS DES NOEUDS DE LA FACE I
C     PRP(KDEB:KFIN) : PRESSION AUX NOEUDS DE LA FACE I
C     PRF  : TABLEAU DE TRAVAIL (DIM N) : PAR EXEMPLE :
C               PRESSIONS APPLIQUEES SUR LES N FACES AU TEMPS T
C     TAB  : TABLEAU DE TRAVAIL (DIM AJUSTABLE AVEC "TRAV" )
C
C ===> IMPORTANT : NE PAS MODIFIER  IPT, N, IPOS, NUP.
C
C     SI KAR EST MIS < 0 , ON ARRETE LA LECTURE AVANT D'AVOIR EPUISE
C     TOUS LES INSTANTS PREVUS
C
C     SI NUP(K) EST > 10000 : IL S'AGIT D'UN NOEUD APPARTENANT A UN
C     ELEMENT DE COQUE (SINON EL. MASSIF), LE NUMERO EST ALORS
C        NUCO=MOD(NUP(K),10000)
C
C
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C
      CHARACTER*(10) MOT
C
      PARAMETER (NPRES=20)
C
      DIMENSION IPOS(N),NUP(*),PRP(*),PRF(N),TAB(NPRES,2)
      DIMENSION X(3)
C
C
      IF(KAR.LE.0) RETURN
C
      READ (KAR,*) MOT
      IF(MOT.EQ.'TERMINE') GOTO 91
      IF(MOT.NE.'INSTANT') GOTO 90
C
C---   LECTURE D'UN BLOC  (A T DONNE : NP COUPLES R,P )
      READ (KAR,*) T,NP
      IF(NP.GT.NPRES) GOTO 88
      READ (KAR,*) (TAB(K,1),TAB(K,2),K=1,NP)
C
      WRITE (IMP,*) ' ===> INSTANT : ',T
      CALL DPRINT(IMP,NP,TAB(1,1),'RAYON')
      CALL DPRINT(IMP,NP,TAB(1,2),'VALEUR')
C
C---   COORDONNEES DU CENTRE :
      XC=0
      YC=0
C
C---   CALCUL DES PRESSIONS PAR INTERPOLATION LINEAIRE
      DO 50 IFA=1,N
      KDEB=IPOS(IFA)
      KFIN=IPOS(IFA+1)-1
      NBNF=IPOS(IFA+1)-KDEB
      PRF(IFA)=0
      DO 40 K=KDEB,KFIN
      NUCO=MOD(NUP(K),10000)
      CALL QUIDNE(0,NUCO,LON,X)
      IF(LON.NE.3) GOTO 89
      DX=X(1)-XC
      DY=X(2)-YC
      R=SQRT(DX*DX+DY*DY)
      CALL DITPL1(NP,TAB(1,1),TAB(1,2),R,P,DPSDR,NX,IER)
      IF(IER.NE.0) GOTO 87
      PRP(K)=P
      PRF(IFA)=PRF(IFA)+P
  40  CONTINUE
      PRF(IFA)=PRF(IFA)/NBNF
  50  CONTINUE
      RETURN
C
C---   ERREURS ET SORTIE
  87  CALL ERRMSS('PPROG','INTERPOLATION INCORRECTE')
      STOP
  88  CALL ERRMSS('PPROG','IL Y A TROP DE VALEURS')
      STOP
  89  CALL ERRMSS('PPROG','IL N Y A PAS 3 COORDONNEES')
      STOP
  90  CALL ERRMSS('PPROG','SYNTAXE INCORRECTE')
      STOP
  91  KAR=-KAR
      RETURN
C
      END

EXAMPLE 1

F.310


Problem:


The user wants to enter FORCES into the directions x and y (degrees of freedom 1 and 2). These forces are applied to the nodes 1, 3, 5, 7, 9, 11.


Their values are the same for all the nodes,for both directions; these values are defined by analytical formulas:


F = 2.5 * Sin( pi * t ) For t .LE. 20 milliseconds


F = 2.9 * Sin( 2 * pi * t ) For t .GT. 20 milliseconds


The programming concerns 51 elementary times, a value is calculated for each millisecond from 0 to 50.


At each elementary time, the user must provide 2*6=12 values stored in array F (2 degrees of freedom and 6 nodes).


The user’s subroutine:
     SUBROUTINE FPROG(KAR,IMP,IPT,T,N,NUF,F,TAB)
C
     IMPLICIT DOUBLE PRECISION(A-H,O-Z)
C
     DIMENSION F(*),TAB(*)
     DATA PI/3.1416/
C
     T=1E-3*(IPT-1)
     IF(IPT.GT.21) GOTO 20
     DO 10 I=1,N
 10  F(I) = 2.5 * DSIN( PI * T )
     RETURN
 20  IF(IPT.GT.51) GOTO 40
     DO 30 I=1,N
 30  F(I) = 2.9 * DSIN( 2*PI * T )
     RETURN
 40  KAR=-KAR
     RETURN
     END



Data of the instruction "CHARGE":
      "CHARGE" 1 "PROG" 2 "FORCE" "DDL" 12 "LECT" 1 PAS 2 11 "TERM"
                       "MXTF" 60  "ROUTINE"



Comments:


The user can directly define these coefficients inside the subroutine. There are no data cards of the user behind the word "ROUTINE".


The value of ntmax must be superior or equal to 51, since the subroutine has performed a test in order to stop the loading at this value.

EXAMPLE 2

F.315


Problem:


The user has at his disposal a file containing data sets (elementary times and loads). It is supposed that there are a hundred values of pressure per elementary time and each data set is written under the form : (F10.5,100F15.7).


The user wants to enter only one elementary time out of ten (numbers 10, 20, 30, ...) from the initial file. For each elementary time, the user selects the pressures occupying the ranks 1, 3, 7, 9, 11, 12 and 15 among the initial data sets. Therefore, 7 values must be taken into account. The file has to be read completely and contains no more than 100 value sets. The file has been defined by number 9 at the level of the control cards.


The user’s subroutine:
     SUBROUTINE PPROG(KAR,IMP,IPT,T,N,IPOS,NUP,P,PRF,TAB)
C
     IMPLICIT DOUBLE PRECISION(A-H,O-Z)
C
     DIMENSION P(*),TAB(*),IPOS(*),NUP(*),PRF(*)
     DIMENSION NV(7)
     DATA NV/1,3,7,9,11,12,15/
C
     IF(IPT.GT.1) GOTO 10
C-----   THE PRESSURES ARE EQUAL TO ZERO AT T=0
     T=0
     DO 5 I=1,N
  5  P(I)=0
C-----   READING OF THE NUMBER OF THE FILE AND THE LENGTH OF THE SETS
     READ(KAR,*) NB,NMAX
     RETURN
 10  DO 20 I=1,10
     READ(KAR,1000,END=50) T,(TAB(I),I=1,NMAX)
1000 FORMAT(F10.5,100F15.7)
 20  CONTINUE
C-----   AT THE END OF THE LOOP ON RECORDS HAVE BEEN SKIPPED
     DO 30 I=1,7
 30  P(I)=TAB(NV(I))
     RETURN
 50  KAR=-KAR
     RETURN
     END



Data of the instruction "CHARGE":
      "CHARGE" 1 "PROG" 2 "PRESS" "COQUE" "LECT" 1 2 3 5 "TERM"
                                  "FACE" 3 "LECT" 7 9 11 "TERM"
                       "MXTP" 101 "ROUTINE"
                       9 100



Comments:


The subroutine gives an example of use of the work array TAB.


The data are read at the first call and the value of the pressures at t = 0 is fixed on zero. The user selects 7 values (N = 7).


At the following calls, 9 records on the file are skipped in order to get positionned on the sets 10, 20, 30, ... 100, at the end of the reading loop. Then, the right values supplied by the work array TAB must be stored in another array (P).


At the end of the file, the value of NB is -9 to inform the EUROPLEXUS program that the loading is finished.

10.5  ADVECTION-DIFFUSION "LOADS" (JRC)

F.320


Object:


This option enables the user to enter generalized loads for advection-diffusion calculations (see also keyword "ADDF" in Section A). These ’loads’ include:

    - imposed time-dependent temperatures
    - imposed time-dependent heat fluxes
    - imposed time-dependent heat generation
    - imposed time-dependent heat convection
    - imposed time-dependent heat radiation
    - imposed time-dependent external pressure
    - imposed time-dependent velocity
    - imposed zero velocity
    - imposed velocity parallel to a plane
    - imposed velocity parallel to a line

Syntax:

       "ADDF"
           $  "TIMP" . . . $
           $  "FLUX" . . . $
           $  "QGEN" . . . $
           $  "CONV" . . . $
           $  "RADI" . . . $
           $  "PRES" . . . $
           $  "VELO" . . . $
           $  "BLOQ" . . . $
           $  "VPLA" . . . $
           $  "VLIN" . . . $


The single sub-options are described below.


Comments:


The word "ADDF" is the first key-word of the option . It should be used only once in the EUROPLEXUS data set.

10.5.1  PRESCRIBED TEMPERATURE

F.321


Object:


To prescribe time-dependent nodal temperatures in an advection-diffusion calculation.


Syntax:

         "TIMP"  nti*( "NOEU" /LECTURE/
                       "TPOI" ntp*(T,t))


nti

Number of groups of nodes using the same time function to describe a prescribed temperature.
/LECTURE/

List of nodal point indexes.
ntp

Number of (Temperature, time) couples used for the time evolution.
T

Temperature.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (nti) and of time points (ntp), see Section A.

10.5.2  PRESCRIBED HEAT FLUX

F.322


Object:


To prescribe a time-dependent normal heat flux on element faces in an advection-diffusion calculation.


Syntax:

       "FLUX"  ntf*( "NELE" nel /LECTURE/
                     "TPOI" ntp*(flux,t))


ntf

Number of groups of nodes using the same time function to describe a prescribed edge heat flux.
nel

Number of elements in the group.
/LECTURE/

The 4*nel nodes defining element faces, in the form nel * (n1, n2, n3, n4).
ntp

Number of (flux, time) couples used for the time evolution.
flux

Heat flux.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (ntf) and of time points (ntp), see Section A.

10.5.3  PRESCRIBED HEAT GENERATION

F.323


Object:


To prescribe a time-dependent volumetric heat generation in an advection-diffusion calculation.


Syntax:

       "QGEN"  ntq*( "FIRS" n1 "LAST" n2
                     "TPOI" ntp*(Q,t))


ntq

Number of groups of elements using the same time function to describe a prescribed volumetric heat generation. Each group must contain elements with consecutive indexes.
n1

Index number of the first element in the group.
n2

Index number of the last element in the group.
ntp

Number of (heat gen., time) couples used for the time evolution.
Q

Volumetric heat generation.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (ntq) and of time points (ntp), see Section A.

10.5.4  PRESCRIBED CONVECTIVE HEAT TRANSFER

F.324


Object:


To prescribe a convective heat transfer condition in an advection-diffusion calculation.


Syntax:

       "CONV"  ntb*( "NELE" nel /LECTURE/
                     "TPOI" ntp*(H,T,t))


ntb

Number of groups of elements using the same time function to describe a prescribed time-dependent convective heat transfer on one edge.
nel

Number of elements in the group.
/LECTURE/

The 4*nel nodes defining element faces, in the form nel * (n1, n2, n3, n4).
ntp

Number of (heat transf. coef., flux, time) triples used for the time evolution.
H

Heat transfer coefficient.
T

Temperature.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (ntb) and of time points (ntp), see Section A.

10.5.5  PRESCRIBED RADIATION HEAT TRANSFER

F.325


Object:


To prescribe a radiation heat transfer condition in an advection-diffusion calculation.


Syntax:

       "RADI"  nrad*( "NELE" nel /LECTURE/
                      "TPOI" ntp*(Hr,T,t))


nrad

Number of groups of elements using the same time function to describe a prescribed time-dependent radiation heat transfer on one face.
nel

Number of elements in the group.
/LECTURE/

The 4 * nel nodes defining element faces, in the form nel * (n1, n2, n3, n4).
ntp

Number of (radiation heat transf. coef., flux, time) triples used for the time evolution.
Hr

Radiation heat transfer coefficient.
T

Temperature.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (nrad) and of time points (ntp), see Section A.

10.5.6  PRESCRIBED TIME-DEPENDENT PRESSURE

F.326


Object:


To prescribe a time-dependent external pressure in an advection-diffusion calculation.


Syntax:

       "PRES"  npres*( "NELE" nel /LECTURE/
                       "TPOI" ntp*(p,t))


npres

Number of groups of elements using the same time function to describe a prescribed time-dependent external pressure on one face.
nel

Number of elements in the group.
/LECTURE/

The 4*nel nodes defining element faces, in the form nel * (n1, n2, n3, n4).
ntp

Number of (pressure, time) couples used for the time evolution.
t

Associated time.

Comments:


Remember to dimension sufficiently for the number of groups (npres) and of time points (ntp), see Section A.

10.5.7  PRESCRIBED VELOCITIES

F.327


Object:


To prescribe time-dependent nodal fluid velocities in an advection-diffusion calculation.


Syntax:

       "VTIM"  nvel*( "NOEU" /LECTURE/
                      "TPOI" ntp*(v,t)
                      $[ "PERP"                     ;
                         "PARA" "ANG1" a1 "ANG2" a2 ]$ )


nvel

Number of groups of nodes using the same time function to describe a prescribed time-dependent velocity.
/LECTURE/

Indexes of the nodes in the group.
ntp

Number of (velocity, time) couples used for the time evolution.
v

Velocity.
t

Associated time.
"PERP"

The nodal velocity should be perpendicular to the boundary.
"PARA"

The velocity should be parallel to a line defined by the following angles.
a1,a2

Angles of the velocity direction in spherical coordinates: a1 is the angle between the global x axis and the projection of the velocity vector on the xy plane, a2 is the angle between the z axis and the velocity vector.

Comments:


Remember to dimension sufficiently for the number of groups (nvel) and of time points (ntp), see Section A.

10.5.8  PRESCRIBED PARALLEL VELOCITIES

F.328


Object:


To prescribe null nodal fluid velocities or velocities parallel to a plane or to a line in an advection-diffusion calculation.


Syntax:

       "VELO" $[ "BLOQ" /LECTURE/                    ;
                 "VPLA" /LECTURE/                    ;
                 "VLIN" "NOEU" /LECTURE/
                    $[ "PERP"                     ;
                       "PARA" "ANG1" a1 "ANG2" a2 ]$ ]$


"BLOQ"

The following nodes will have null velocity at all times.
"VPLA"

The following nodes will have a velocity parallel to a plane tangent to the local boundary.
"VLIN" "NOEU"

The following nodes will have a velocity parallel to a line defined as follows.
"PERP"

The nodal velocity should be perpendicular to the boundary.
"PARA"

The velocity should be parallel to a line defined by the following angles.
a1,a2

Angles of the velocity direction in spherical coordinates: a1 is the angle between the global x axis and the projection.

Comments:


Sub-directives "BLOQ", "VPLA" and "VLIN", if present, should appear in this order.

10.6  SEISMIC-LIKE LOADS FOR USE WITH SPECTRAL ELEMENTS

F.350


Object:


To impose seismic-like loads in a domain discretized by spectral elements, for the simulation of earthquakes and wave-propagation problems.


There are two main classes of loadings:

    - punctual sources, introduced by the keyword "POIN";

    - plane wave sources, introduced by the keyword "PLAN";

    - seismic moment sources, introduced by the keyword "SISM".

10.6.1  PUNCTUAL SEISMIC LOAD SOURCES

F.360


Object:


This directive specifies punctual sources of loadings for spectral elements. The load is computed as the product of a time function and a function of space:

           f(x,y,z,t) = h(t) * g(x,y,z)


Syntax:

 "POIN" <"NODP" /LECT/> |[ "BET" ; "COS" ]|
                        |[ "DELT" ; "SPRE" ; "PRES" ; "SHEA" ]|
                        "SOUR" "AMP" amp "T0" t0
                        "BETA" beta "ALFA" alfa
                        <"X" x0 "Y" y0 <"Z" z0>>
                        <"NX" nx "NY" ny <"NZ" nz> >
"NODP"

The load will be applied to the node specified in the following /LECT/. Only one nodal point must be specified. This directive may be used in alternative to the load point coordinates X, Y, Z.
"BET"

The time function h(t) has the form:
                             h(t) = amp * (1 - 2*beta*(t - t0)^2) *
                                    exp(-beta * ((t - t0)^2)
"COS"

The time function h(t) has the form:
                             h(t) = amp * cos(Pi*beta*(t - t0)) *
                                    exp(-0.5*beta^2 * ((t - t0)^2)
"DELT"

The spatial distribution is punctual (delta function), i.e. the force only acts in the point (node) specified below by (x0, y0, z0). Note that this force is an absolute one, i.e. it does not depend on the nodal volume.
"SPRE"

The spatial distribution is a radial function:
                             g(x,y,z) = exp( - alfa^2 * R^2 )
.

where R**2 is the distance from point (x0, y0, z0). Note that this force is a volume force, i.e. it is scaled for each node by the nodal volume. All points at the same distance R from (x0, y0, z0) have the same same value of g(x,y,z), but note that the direction of the force is NOT radial, but is defined by (nx, ny, nz).
"PRES"

Similar to SPREAD but the direction is radial, thus there is no need to define (nx, ny, nz). Like SPRE, this force is volumetric, i.e. scaled by the nodal volume:
                             f_x = h(t) * 2 * alfa^2 * (x - x0) *
                                   exp( - alfa^2 * R^2 )

                             f_y = h(t) * 2 * alfa^2 * (y - y0) *
                                   exp( - alfa^2 * R^2 )

                             f_z = h(t) * 2 * alfa^2 * (z - z0) *
                                   exp( - alfa^2 * R^2 )
"SHEA"

Similar to PRES but the force is directed along the tangential direction (and not along the radial one). Also here (nx, ny, nz) are redundant. Furthermore, this kind of loading is only available in 2D. Like SPRE, this force is volumetric, i.e. scaled by the nodal volume. The components are:
                             f_x = - h(t) * 2 * alfa^2 * (y - y0) *
                                     exp( - alfa^2 * R^2 )

                             f_y = h(t) * 2 * alfa^2 * (x - x0) *
                                   exp( - alfa^2 * R^2 )
"SOUR"

Introduces a source, that will be characterized by its parameters AMP, T0 etc.
amp

Amplitude of the time function.
t0

The value appearing in the expression of h(t). This time corresponds to the maximum of the time function: h(t0) = amp.
beta

The beta value appearing in the expression h(t). It governs the exponential decay of the time function. Note that it is possible to avoid the exponential decay in time of the load by specifying a negative value for beta. In this case, the exponential function is eliminated from the expression of h(t), and the absolute value of beta is used. In the BET case:
                         h(t) = amp * (1 - 2*abs(beta)*(t - t0)^2)
.

In the COS case:
                         h(t) = amp * cos(Pi*abs(beta)*(t - t0))
alfa

The alfa value appearing in the expression g(x,y,z). It governs the exponential decay of the space function.
x, y, z

Coordinates of the source. The load will be applied to the node closest to point x,y,z. If these are given, use of NODP is not permitted.
nx, ny, nz

Define the normal direction for DELTA or SPREAD.

Comments:


These loads are all volumetric (specific) forces, except in the case of DELT. This is in order to avoid mesh dependency of the total energy introduced in the system.


Therefore, amp represents the total force (per unit volume) acting on all affected nodes at time t0, and this quantity varies in time according to h(t).


In the special case of DELT, the user is responsible of calibrating the (non-volumetric) force with respect to the nodal mass of the application point.

10.6.2  PLANE WAVE SEISMIC LOAD SOURCES

F.370


Object:


This directive specifies loading sources in the form of distributed loadings for spectral elements. The load is applied to all nodal points (typically) along a plane (or a line in 2D) and varies in time according to the same time function in all loaded points (except in the case "DLEN", see below).


Syntax:

 "PLAN" |[ "BET" ; "COS" ]|
        "SOUR" "AMP" amp "T0" t0
                         "BETA" beta <"DLEN" dlen>
                         "NX" nx "NY" ny <"NZ" nz>
                         "NOEU" /LECTURE/
"BET"

The time function h(t) has the form:
                             h(t) = amp * (1 - 2*beta*(t - t0)^2) *
                                    exp(-beta * ((t - t0)^2)
"COS"

The time function h(t) has the form:
                             h(t) = amp * cos(Pi*beta*(t - t0)) *
                                    exp(-0.5*beta^2 * ((t - t0)^2)
"SOUR"

Introduces a source, that will be characterized by its parameters AMP, T0 etc.
amp

Amplitude of the time function at t = t0.
t0

The value appearing in the expression of h(t). This time corresponds to the maximum of the time function: h(t0) = amp.
beta

The beta value appearing in the expression h(t). It governs the exponential decay of the time function.
dlen

If this value is given, then the loading model of ELSE is strictly used. In this model the load applied to nodal points is proportional to the time derivative of the function h(t), in order to obtain h(t) as an imposed displacement. The nodal force is then:
                             F = 2*rho*c*(dh/dt)*vol*fac
.

where rho is the density, c is the wave propagation speed, vol is the nodal volume and fac is a scaling factor, defined as:
                             fac = 2 / (dlen * W)
.

where W is the Gauss-Lobatto weight. The physical meaning of dlen is the maximum height of the spectral elements strip in which the load is prescribed. Note, however, that in this case the following restriction applies (coming from the ELSE implementation): the line of nodal points affected by the load must coincide with the one given in ELSE (typically, an horizontal row of nodes, in a region where the mesh must be structured). Therefore, this option makes only sense for strict comparisons between ELSE and Ahnse.
nx, ny, nz

Define the direction for the loading source.
/LECT/

Nodal points in which the loading acts. The code does NOT require that the given nodes actually lie on a line or a plane (3D). The use may therefore specify a non-linear or non-planar source if so desired.

Comments:


These loads are volumetric (specific) forces. This is in order to avoid mesh dependency of the total energy introduced in the system.


Therefore, amp represents the total force (per unit volume) acting on all affected nodes at time t0, and this quantity varies in time according to h(t).

10.6.3  SEISMIC MOMENT LOADS

F.380


Object:


This directive specifies loading sources in the form of seismic moment loadings for spectral elements. The load is applied to a ’fault’ defined by a series of nodes, introduced by the keyword NOEU. The program verifies the alignment of the given nodes along a line in 2D and on a plne in 3D. As a special case, a single fault node can be specified (pointwise loading).


A slipping vector must be defined by keywords SX, SY, SZ. The user can also specify the normal to the fault by the keywords NX, NY, NZ. If the normal is missing, the program assumes it coincident with the slipping vector.


The load applied to each nodal point varies in time according to the distance from the ipocenter, defined by its coordinates X, Y, Z. The time delay in each point depends upon the above mentioned distance and on the speed of transversal wave propagation. This speed is automatically evaluated by the code, or can alternatively be imposed by the keyword VRUP.


Syntax:

 "SISM" |[ "BET" ; "COS" ]|
        "SOUR" "AMP" amp "T0" t0
                         "BETA" beta
                         "SX" sx "SY" sy <"SZ" sz>
                         <"NX" nx "NY" ny <"NZ" nz>>
                         "X" x "Y" y <"Z" z>
                         <"VRUP" vrup>
                         "NOEU" /LECTURE/
"BET"

The time function h(t) has the form:
                            h(t) = amp * (1 - 2*beta*(t - t0)^2) *
                                   exp(-beta * ((t - t0)^2)
"COS"

The time function h(t) has the form:
                            h(t) = amp * cos(Pi*beta*(t - t0)) *
                                   exp(-0.5*beta^2 * ((t - t0)^2)
"SOUR"

Introduces a source, that will be characterized by its parameters AMP, T0 etc.
amp

Amplitude of the time function at t = t0.
t0

The value appearing in the expression of h(t). This time corresponds to the maximum of the time function: h(t0) = amp.
beta

The beta value appearing in the expression h(t). It governs the exponential decay of the time function.
sx, sy, sz

Components of the slipping vector.
nx, ny, nz

Components of the normal vector. If omitted, the normal direction is assumed coincident with the slipping vector.
x, y, z

Coordinates of the ipocenter.
vrup

Velocity of propagation of loading (by default, this is the speed of transverse wave propagation).
NOEU /LECT/

Nodal points in which the loading acts. Unlike in the PLAN case, the code requires that the given nodes actually lie on a line or a plane (3D).

Comments:


The present model has been borrowed from the ELSE code of CRS4 and is mesh-dependent in that the applied loadings depend on mesh size. A slightly modified, mesh-indepenedent implementation is also available in EUROPLEXUS, and is activated by choosing a negative value for VRUP.

10.7  NEW CONSTANT LOADS

F2.20


Object:


This directive allows to introduce constant forces or moments during the whole computation. The loads may be applied either to the nodes of a deformable body, or to the centroid of a rigid body.


Syntax:

      FCTE  $[ NODE ; RIGI ]$ /LECT/
            $[ FORC f ; MOME m ]$ VECT x y z


NODE

The loads will be applied at the following specified nodes.
RIGI

The loads will be applied at the following specified rigid bodies.
/LECT/

Concerned nodes or concerned rigid bodies (see directive COMP RIGI).
f

Force modulus.
m

Moment modulus.
x y z

Components of the vector or moment-vector. See comments below for the meaning of each component.

Comments:


Three vector components must be specified, even in 2-D calculations. The vector is used to determine the direction of the applied force or moment. It does not need to be unitary, since it is automatically normalized immediately after reading.


The applied forces or moments must be expressed in the global reference frame X, Y, Z (for rigid bodies, the rotational values are then converted internally to the local reference frame, as appropriate). The meaning of the vector components (VECT x y z) is as follows:

  1. For an applied force (FORC):
  2. For an applied moment (MOME):

10.8  IMPOSED TIME-DEPENDENT LOADS

F2.30


Object:


This directive allows to introduce time-dependent forces or moments during the transient computation. The loads may be applied either to the nodes of a deformable body, or to the centroid of a rigid body. The time-dependency of the load is specified by a function (see directive FONC on page E.15 and following ones).


Syntax:

      FIMP  $[ NODE ; RIGI ]$ /LECT/
            $[ FORC f ; MOME m ]$ VECT x y z NUFO nf


NODE

The loads will be applied at the following specified nodes.
RIGI

The loads will be applied at the following specified rigid bodies.
/LECT/

Concerned nodes or concerned rigid bodies (see directive COMP RIGI).
f

Force modulus (base value, to be multiplied by the time function).
m

Moment modulus (base value, to be multiplied by the time function).
x y z

Components of the vector or moment-vector. See comments below for the meaning of each component.
nf

Number of the function defining the time-dependency of the imposed load.

Comments:


Three vector components must be specified, even in 2-D calculations. The vector is used to determine the direction of the applied force or moment. It does not need to be unitary, since it is automatically normalized immediately after reading.


The applied forces or moments must be expressed in the global reference frame X, Y, Z (for rigid bodies, the rotational values are then converted internally to the local reference frame, as appropriate). The meaning of the vector components (VECT x y z) is as follows:

  1. For an applied force (FORC):
  2. For an applied moment (MOME):


The defined load A is multiplied by a coefficient C(t) which varies in time and is interpolated from the specified table:

Q(t) = A * C(t)

10.9  DYNALPY LOADS

F2.40


Object:


This directive allows to introduce time-dependent dynalpy loads in 1-D elements of type TUBE or TUYA.


Syntax:

      FDYN  NODE /LECT/ PZER p0 COEF c VECT x y z ELEM e


/LECT/

Concerned node. Only one single node is possible to define.
p0

Reference pressure.
c

Coefficient.
x y z

Components of the vector or moment-vector.
e

Number of the concerned element.

Comments:


Three vector components must be specified, even in 2-D calculations. The vector is used to determine the direction of the applied load. It does not need to be unitary, since it is automatically normalized immediately after reading.


These loads are only related to 1-D elements of type TUBE or TUYA and are defined as:

F=c(pp0)v

where p is the current pressure in the specified element.


Previous Up Next