CB - PartIII - Process MANUAL CODE BRIGHT
CB - PartIII - Process MANUAL CODE BRIGHT
CODE_BRIGHT PROCESS
III.1. CALCULATE
This part deals with the stage of the process that solves the numerical problem. The system
would allow to call the Finite Element program without necessity of leaving from the work
environment. Pressing Calculate the user can see a Process window, and clicking on Start
the solver module runs.
Card 1. Problem
Variables: HEAD
Format: (A40): Fixed format
-999: Free format
Card 8. Constants.
Variables: EPSILON, THETA, PGCONS, TCONS, PLCONS
Format: (6F10.0). It is not required if free format is used
EPSILON: Position of intermediate time tk+ε for matrix evaluation, i.e. the point where the non-
linear functions are computed. (frequent values: 0.5, 1)
THETA: Position of intermediate time tk+θ for vector evaluation, i.e. the point where the
CODE_BRIGHT. PROCESS III.7
equation is accomplished. (frequent values: 0.5, 1)
PGCONS: Constant gas phase pressure for solving with IOPTPG=0, otherwise ignored. (frequent
value: 0.1 MPa = atmospheric pressure).
TCONS: Constant temperature for solving with IOPTTEMP=0, otherwise this value is ignored.
PLCONS: Constant liquid phase pressure for solving with IOPTPL=0, otherwise ignored. (if
PLCONS is greater than -1.0 x 1010 then wet conditions are assumed for computing
viscous coefficients in creep laws. (Otherwise the medium is considered dry.)
Card 9. Void.
This line should be left blank.
Each computed unknown requires a line with its associated parameters. In this way each
equation has different tolerances. If IOPTDISPL=1, only one line with DELMXU, FACU,
DELFMX, DUMX should be read regardless whether the problem is one, two or three
dimensional.
Convergence parameters for Conjugate Gradients Squared method of solution (Omit this
CARD if ISOLVE is not equal to 5).
Variables: DXS,DRS,DRSREL
Format: (5F10.0). It is not required if free format is used
This Card is only required for ISOLVE=5.
DXS: Maximum abs. correction for solver (usually a very low value)
DRS: Maximum abs. residual for solver (< min(DELFMX, DELQWMX, DELQAMX, DTMX,
DELIMX)) assuming all them > 0
DRSREL: Maximum relative residual for solver. The solver residual is normalised with the RHS of the
system of equations to be solved.
The following group of Cards, beginning with time period definition can be repeated several
times to define periods or steps with different material properties and boundary conditions.
For the first step all information should be read and for the subsequent steps only
modifications are required.
CODE_BRIGHT. PROCESS III.13
Card 13. Period time variables
Variables: TIMEI, DTIME, TIME1, DTIMEC, TIMEF, FACTTIME
Format: (5F10.0), It is not required if free format is used
TIMEI: Initial time. If TIMEI is not equal to final time of the last increment (TIME), then it
is assumed TIMEI=TIME. Exception is made if TIMEI=0.0, in which case, 0.0 is
kept as a new origin of times.
DTIME: Initial time increment for this time interval. If DTIME=0, last DTIME value is
used or, the first time increment of the calculation, a small value is considered.
TIME1: Time from which an upper bound is prescribed for the time increment. If
TIME1=0, then TIME1 is considered equal to TIMEI (the upper bound is
prescribed during all the time step)
DTIMEC: Upper bound value for the time increment used from TIME1 to TIMEF. If found
equal to zero, no maximum time increment value is prescribed.
TIMEF: Final time.
FACTTIME: Factor for converting seconds (input time units) into another output time units.
(Example: FACTTIME=86400. for output in days).
Time increments during time step [TIMEI1, TIMEF] are adapted by the code according to
flag control ITIME (see Card 10). This may cause inconveniences if the user desires the
results at precisely fixed times (for instance: 6 months, 1 year, 2 year, etc.). Moreover, if
something changes between two runs (e.g. boundary conditions) and any time increment
should be modified, the value of the times in which results are output will not be identical
between the two runs. In this case, it would be difficult to make a comparison of the two
analyses because we would not have the same times for output.
A first way to overcome this inconvenience is to prescribe an upper bound for the time
increment, reflected in the variable DTIMEC. If convergence requires time increments
smaller than DTIMEC, time increment is reduced. But, if convergence is easy and the current
time increment becomes higher than DTIMEC, it is fixed to DTIMEC. Variable TIME1
allows for setting an intermediate time between TIMEI and TIMEF from which the upper
CODE_BRIGHT. PROCESS III.14
bound for the increment becomes active, as represented below:
Another way to set fixed times for output results is to use a sequence of Cards number 13
separated by two (only flow or only mechanical problem) or three (flow and mechanical
problem) lines with '-1' (format I5) indicating that nothing changes in the new time period,
except the time discretization. In this way, results will be output for all TIMEF's, and if the
user is only interested in these fixed times a very large value may be used for INTER (see
Card 10) to avoid output at other times.
Example:
-1 indicates no change in material properties
-1 indicates no change in mechanical boundary conditions
-1 indicates no change in flow boundary conditions
350000. 0.0 0.0 10000. 360000. 86400.
-1 indicates no change in material properties
-1 indicates no change in mechanical boundary conditions
-1 indicates no change in flow boundary conditions
360000. 0.0 0.0 10000. 370000. 86400.
-1 indicates no change in material properties
-1 indicates no change in mechanical boundary conditions
CODE_BRIGHT. PROCESS III.15
-1 indicates no change in flow boundary conditions
in this case for the times 350000, 360000 and 370000 the results would be written. Time step
in this case would be lesser or equal than 10000.
It is is possible to define at the beginning of the calculation a step for equilibration of the
initial stress state. This is done by defining a time step starting from a negative value (TIMEI
<0) and ending at 0 (TIMEF = 0). During this step, gravity is applied as a ramp. Greater is
time step (TIMEF – TIMEMAX), smoother is the gravity ramp.
TIT: text to identify (by the user) the parameter (ex: Young modulus (E)),
this text will be reproduced on output only for user reference but will
not be used by the program
PARCL(MNP,NCL,NUMMAT): parameters of constitutive laws (MNP=10, NCL is the maximum
number of existing constitutive laws)
TIT for FD1 Value for FD1 TIT for FD$ Value for FD$
TIT for FD2 Value for FD2 TIT for FD$ Value for FD$
TIT for FD3 Value for FD3 TIT for FD$ Value for FD$
TIT for FD4 Value for FD4 TIT for FD$ Value for FD$
... etc. according to NPFD=2*(NDIM*(NDIM+2)+1).
A20 F10.0 A20 F10.0
CODE_BRIGHT. PROCESS III.18
For NDIM=3 these columns are composed by:
FD1: x direction force applied fxo FD17 Δfxo obtained as ramp loading during
TIMEI and TIMEF
FD2 y direction force applied fyo FD18 Δfyo obtained as ramp loading during
TIMEI and TIMEF
FD3 z direction force applied fzo FD19 Δfzo obtained as ramp loading during
TIMEI and TIMEF
FD4 displacement rate, first direction u1o FD20
o
FD5 displacement rate, second direction u2 FD21
o
FD6 displacement rate, third direction u3 FD22
FD7 cos(α1), first direction FD23
FD8 cos(β1), first direction FD24
FD9 cos(γ1), first direction FD25
FD10 cos(α2), second direction FD26
FD11 cos(β2), second direction FD27
FD12 cos(γ2), second direction FD28
FD13 cos(α3), third direction FD29
FD14 cos(β3), third direction FD30
FD15 cos(γ3), third direction FD31
FD16 γ FD32 index
For a one dimensional problem the general boundary condition is applied by means a force
computed as:
f x = f xo + γ cos(α 1 )(u10 − u x )Δt
where u1 is the computed displacement along the first direction. Obviously, for a one-
dimensional problem cosα1 can only be equal to zero or one.
CODE_BRIGHT. PROCESS III.19
For a two dimensional problem the general boundary condition is applied by means a force
computed as:
f x = f xo + γ cos(α 1 )(u10 − u1 )Δt + γ cos(α 2 )(u 20 − u 2 )Δt
f y = f yo + γ cos(β 1 )(u10 − u1 )Δt + γ cos(β 2 )(u 20 − u 2 )Δt
where:
u1 = u x cos(α 1 ) + u y cos(β 1 )
u 2 = u x cos(α 2 ) + u y cos(β 2 )
A very large value of γ can be used to impose a fixed displacement rate. If γ is insufficiently
large, the prescription of the displacement will be inaccurate. On the contrary, extremely large
values can cause matrix ill conditioning. Each specific problem requires an adjusted value.
If index is equal to 0, the values of forces calculated above are directly incorporated at the
nodal force balance. If index is equal to 1 then, the forces are considered stresses on the
boundary, and therefore the forces to be applied at nodes are internally obtained by the
product with the lateral areas of elements.
For three dimensional problems, for instance, it is possible to prescribe displacement rate for
three different directions, without any other restriction. In this way, any kind of displacement
boundary condition (ex: displacement zero along a direction 45 degrees with respect to the
vertical, etc) can be imposed. For a constant force applied on the boundary, the three
components along x,y,z axes should be given.
This is a loop for IF=1, NFDTYPE. For each IF, I=1, NPFD. This variable is (NPFD=5
NDIM+1) the number of parameters for mechanical boundary condition.
The last Card of this group must be always ' -1' (format I5) regardless of the number of
types read.
This group of Cards (Card 17 and CardGroup 18) (mechanical boundary conditions) only
exists if the mechanical problem is solved. For each time period only the types that change
need to be read.
CODE_BRIGHT. PROCESS III.20
Card 19. Type of Boundary Condition. Mass or heat transport problems.
Variables: IF
Format: (I5). It is not required if free format is used
(Omit Card 19 if IOPTPL + IOPTPG + IOPTTEMP = 0)
IF: index of flux boundary condition (<= NFLUXTYPE)
(if ' -1' (format I5) is read, no more boundary condition types are expected.
TIT for FL1 Value for FL1 TIT for FL1 Value for FL1
TIT for FL2 Value for FL2 TIT for FL2 Value for FL2
... ...
TIT for FL20 Value for FL20 TIT for FL20 Value for FL20
A20 F10.0 A20 F10.0
CODE_BRIGHT. PROCESS III.21
The boundary condition is incorporated by adding a flux. The mass flux of species i=w as a
component of phase α=g (i.e. the inflow or outflow of vapour) is:
( ) 0⎛ dt ⎞
( ) ⎛⎛ dt ⎞ ⎞
(
j gw = ω gw ⎜ j g0 + Δj g0 ⎟ + ω gw γ g ⎜⎜ ⎜ Pg0 + ΔPg0 ⎟ − Pg ⎟⎟ + β g ⎛⎜ ρ g ω gw
Δt ⎠
0
Δt ⎠ ⎝
) − (ρ ω )⎞⎟⎠
0
g
w
g
⎝ ⎝⎝ ⎠
where the superscript ()o stands for the prescribed values, dt is the current time increment and
Δt the current time step. Terms Δ(.) dt/Δt allow for imposing a linear variation of the variable
(.) during the time step. Mass fraction and density prescribed are only required for inflow
because for outflow the values in the medium are automatically considered.
Positive values of mass flow rate indicate injection to the medium.
CODE_BRIGHT. PROCESS III.23
This general form of boundary condition, includes three terms. The first one is the mass
inflow or outflow that takes place when a flow rate is prescribed at a node. The second term is
the mass inflow or outflow that takes place when a phase pressure is prescribed at a node. The
coefficient γ is a leakage coefficient, that is, a constant that allows to prescribe a pressure with
more or less strength. If γ is large pressure will tend to reach the prescribed value. However,
an extremely large value can produce matrix ill conditioning and a lower one can produce
inaccuracy in prescribing the pressure. However it is not difficult to guess adequate values for
a given problem simply by trial. The third term is the mass inflow or outflow that takes place
when species mass fraction is prescribed at a node.
A surface where seepage (only outflow for liquid phase is permitted) is possible has a
boundary condition of prescribed liquid pressure. However, only liquid outflow is permitted.
To recognize this fact, γl must be negative. This negative sign only indicates that nodes with
this kind of boundary condition allow seepage.
Another situation occurs when an internal source or sink should be imposed. In this case it is
preferable to use index = -1.0 and the program automatically considers that the nodal flows
are per unit volume and will be multiplied by the volume associated to the cell centered in the
node.
If there is inflow of gas or liquid phase, it is very important to give values of the following
variables: ωlh, ωgw, ωla, ρl, ρg and T. Otherwise they are assumed zero which is not correct
because they will be far from the equilibrium. If outflow takes place, this is not relevant
because the values of the medium are used.
For energy the boundary condition has the general form:
⎛ dt ⎞ ⎛ dt ⎞
je = ⎜ je0 + Δje0 ⎟ + γ e ⎜ T 0 + ΔT 0 − T ⎟ + E gw ( j gw ) + ...
⎝ Δt ⎠ ⎝ Δt ⎠
in other words, the last terms imply that mass inflow and outflow through the boundary
induces energy transfer.
CODE_BRIGHT. PROCESS III.24
In general, this is a loop for IF=1, NFLUXTYPE. For each IF, I=1,NPFLUX.
The last Card of this group must be always ' -1' (format I5).
This group of Cards (Card 19 and CardGroup 20) only exists if any balance (water, air,
energy flow) problem is solved. For each time period only the types that change need to be
read.
CODE_BRIGHT. PROCESS III.25
III.4. GEOMETRICAL DESCRIPTION FILE: ROOT_GRI.DAT
File ROOT_GEN.DAT
Card 1. Problem HEAD
Card 2. Dimensions and options NUMNP, NUMEL, NDIM, IAXISYM, NUMMAT, NHV
Card 3. Dimensions and options MXDIFN, MBANDT, MFRONTH, NDF, MNVAL, ISOLVE
Card 4. Dimension boundary NFDTYPE, NFLUXTYPE
conditions
Card 5. Options. Unknowns to IOPTDISPL, IOPTPL, IOPTPG, IOPTTEMP, IOPTXWS
be calculated
Card 6. Other options IOPTXHL, IUPDPOR, IOPTXWG, IOPTXAL, IOPTPC, IOPTHYS,
IUPDC
Card 7. Flags. Auxiliary options IFLAG1, IFLAG2, IFLAG3, IFLAG4, IFLAG5
Card 8. Constants EPSILON, THETA, PGCONS, TCONS, PLCONS
Card 9. Void
Card 10. Options IOWIT, INTER, ITERMAX, IOWCONTOURS, ITERMAXS, ITIME,
IMBACKUP, IWRALL, IPOLYFILES
CardGroup 11. Convergence DELMXU, FACU, DELFMX, DUMX (Omit if IOPTDISPL=0)
parameters
DELMXPL, FACPL, DELQWMX, DPLMX (Omit if IOPTPL=0)
DELMXPG, FACPG, DELQAMX, DPGMX (Omit if IOPTPG=0)
DELMXT, FACT, DELQMX, DTMX (Omit if IOPTTEMP=0)
DELMXI, FACI, DELIMX, DIMX (Omit if IOPTXWS=0)
CODE_BRIGHT. PROCESS III.32
DXS,DRS,DRSREL (Omit if ISOLVE not equal 5)
This group ends with -1
Card 12. Gravity GRAVITY(1), ..., GRAVITY(NDIM)
Card 13. Period time variables TIMEI, DTIME, TIME1, DTIMEC, TIMEF, FACTTIME
Card 14. Number of material IMAT
Card 15. Number and name of ICL, TIT, ITYCL
constitutive law
CardGroup 16. Parameters TIT, PARCL(1,ICL,IMAT) TIT, PARCL(6,ICL,IMAT)
constitutive law
TIT, PARCL(2,ICL,IMAT) TIT, PARCL(7,ICL,IMAT)
TIT, PARCL(3,ICL,IMAT) TIT, PARCL(8,ICL,IMAT)
TIT, PARCL(4,ICL,IMAT) TIT, PARCL(9,ICL,IMAT)
TIT, PARCL(5,ICL,IMAT) TIT, PARCL(10,ICL,IMAT)
(group of Cards from IMAT=1 to NUMMAT and for every IMAT value from ICL=1 to NCL (not all ICL are
required) )
This group ends with -1 (ICL loop)
This group ends with -1 (IMAT loop)
Card 17. Type of boundary IF
condition (Mechanical problem)
CardGroup 18. TIT, FORDISP(1,IF)
Force/displacement prescribed
TIT, FORDISP(2,IF)
TIT, FORDISP(...,IF)
(group of Cards from IF=1 to NFDTYPE ) (Omit if IOPTDISPL=0)
This group ends with -1
CODE_BRIGHT. PROCESS III.33
Card 19. Type of boundary IF
condition. Mass or heat transport
problems
CardGroup 20. Flux problem TIT, FLUX(1,IF), TIT, FLUX(21,IF)
boundary condition
TIT, FLUX(2,IF), TIT, FLUX(22,IF)
TIT, FLUX(...,IF, TIT, FLUX(...,IF))
TIT, FLUX(20,IF), TIT, FLUX(40,IF)
(group of Cards from IF=1 to NFLUXTYPE ) (Omit if IOPTPL + IOPTPG +IOPTTEMP = 0)
This group ends with –1
(the group of Cards from 13 to 20 can be repeated in order to make a simulation with several
time periods in which the boundary conditions and material properties are not the same. If any
parameter is not read, the value in the previous interval is used. ) (If a '-1' is read with IMAT,
ICL and IF, then no change takes place in material properties and boundary conditions. )
CODE_BRIGHT. PROCESS III.34
File ROOT_GRI.DAT
Card 1. Grid writing index IOWGRI, IOFILE, IFMT
CardGroup 2. Node co- N, COORD(1, N), ..., COORD(NDIM, N), IFORDISP(1,N),
ordinates and boundary condition IFORDISP(2,N), IFORDISP(3,N), IFLUXTYPE(1,N),
type IFLUXTYPE(2,N), IFLUXTYPE(3,N), WIDTH(N)
(group of Cards from N=1 to NUMNP)
CardGroup 3. Node L, MTYPE, LTYPE, KXX(1,L),..., KXX(MNNEL,L)
connectivities, material, element
type,...
(group of Cards with L=1 to NUMEL)
CardGroup 4. Initial values of N, XOLD(1,N), ..., XOLD(NDF,N)
unknowns
(group of Cards with N=1 to NUMNP)
CardGroup 5. Initial values of L, STRESSOLD(1, 1, L), ..., STRESSOLD(NSTREC, 1, L)
stresses
(group of Cards with L=1 to NUMEL) (Omit if IOPTDISPL=0)
CardGroup 6. Other element L, POROSITY(L), (FK(I, L), I=1,NDIM), ANISOTPER(1, L), ...,
wise properties ANISOTPER(NISOT, L), THICKNESS (L), (FK(I,L), I=NDIM+1,
NDIM+3)
(group of Cards with L=1 to NUMEL)
Card 7. Time evolution of state NOUTOT, IVOU(1), ..., IVOU(10), INTERNODE
or dependent variables at nodes
Card 8. Nodes for time evolution NODOUT(1), ..., NODOUT(NOUTOT)
Card 9. Piezometric head map IWHEAD, NWHEAD
Card 10. Nodal flows IWNFLOW
CODE_BRIGHT. PROCESS III.35
Card 11. Time evolution of LOUT, IELVOUT(1), ..., IELVOUT(10), INTERELEMENT
dependent variables at elements
Card 12. Element numbers for NELOUT(1), ..., NELOUT(LOUT)
time evolution of element-wise
variables
_________________________________