Civil Engineering Reference
In-Depth Information
routines described in the previous section. Thus routines like cube_bc20 return rest
from a knowledge of the number of elements in each direction and the problem-specific
boundary conditions. Following its creation, rest is often rearranged using subroutines
rearrange or rearrange_2 before being used in routines to calculate the steering
vector g from the restraint data. Because there is now no nf , replacements for subroutine
num_to_g which was used in all serial programs are necessary. The replacement routine
is find_g3 in Programs 12.1, 12.2, 12.6, 12.7, find_g4 in Programs 12.3, 12.4, 12.5,
and find_g in Programs 12.8, 12.9, 12.10. The different versions are necessary because
rather large volumes of data are being searched.
It should be re-emphasised that the number of restrained nodes, nr , is now explicitly
calculated in each parallel program and does not have to be input.
12.2.8 Gathering and scattering
This is done very neatly in the serial programs using the power of Fortran 95 as described
in Section 1.9.4. Thus a typical gather-matrix multiply-scatter loop around the elements,
the core of EBE iteration methods, might read:
elements_2: DO iel=1,nels
g=g_g(:,iel)
pmul=p(g)
utemp=MATMUL(km,pmul)
u(g)=u(g)+utemp
END DO elements_2
In parallel, u and p are distributed as u_pp and p_pp while utemp and pmul are dis-
tributed as two-dimensional arrays utemp_pp and pmul_pp that hold all the components
of utemp and pmul for that processor.
Thus the parallel loop becomes:
CALL gather(p_pp,pmul_pp)
elements_2: DO iel=1,nels_pp
utemp_pp(:,iel)=MATMUL(km,pmul_pp(:,iel))
END DO elements_2
CALL scatter(u_pp,utemp_pp)
12.2.9 Reindexing
When loads are read in or displacements fixed, their global freedom numbers are specified.
In parallel, the appropriate equations are distributed across the processors in some way and
so the appropriate indexing must be found using reindex_fixed_nodes .
12.2.10 Domain composition
For parallel FE processing, pieces of a large mesh have to be allocated to the processors.
These pieces are traditionally called subdomains . It is also traditional to speak of the
whole mesh or “domain” being “decomposed” into its constituent subdomains. This use of
Search WWH ::




Custom Search