Civil Engineering Reference
In-Depth Information
nodof
number of freedoms per node
ndof
number of freedoms per element
ntot
total number of freedoms per element (for coupled problems)
nband
the half-bandwidth
In many of the programs in the topic which use the geometry subroutine
geom_rect
,
the values of
nels
and
nn
are first calculated by the subroutine
mesh_size
.
In scalar potential problems, there is one degree of freedom possible per node, the
“potential”
φ
(Figure 3.16(a)). In plane or axisymmetric strain problems there are two,
namely
u
and
v
, the components of displacement in the
x
-and
y
-(or
r
-and
z
-) directions
respectively (Figure 3.16(b)). In planar coupled solid-fluid problems there are three, with
u
,
v
,and
u
w
excess pressure, Figures 3.16(c)), and similarly in Navier-Stokes
applications the order is
u
,
p
,
v
(where
p
=
(where
u
w
=
pressure, and
u
and
v
represent velocity
components). Regular 3D displacement problems have three freedoms per node given by
u
,
v
,and
w
(in
x
,
y
,and
z
). For 3D coupled solid-fluid problems, the 4 degrees of freedom
per node are
u, v, w
,and
u
w
, while for 3D Navier-Stokes the order is
u, p, v
,and
w
.
The information about the degrees of freedom associated with any node in specific
problems is stored in an integer array
nf
called the “node freedom array”, formed by the
subroutine
formnf
.
The node freedom array
nf
has
nodof
rows, one for each degree of freedom per
node, and
nn
columns, one for each node in the problem analysed. Formation of
nf
is
achieved by specifying, as data to be read in, the number of any node which has one or
more restrained freedoms, followed by the digit 0 if the node is restrained in that sense
and by the digit 1 if it is not. The appropriate Fortran 95 coding is
READ(10,*)nr,(k,nf(:,k),i=1,nr)
CALL formnf(nf)
For example, to create
nf
for the problem shown in Figure 3.16(b) the data specified
and the resulting
nf
are listed in Table 3.6.
In regular rectangular meshes, data for generating the mesh coordinates and connec-
tivity depends on a “geometry” subroutine such as
geom_rect
, which takes as input the
number of elements in the
x(r)
-and
y(z)
-directions respectively (
nxe
,
nye
), together with
the
x
-and
y
-coordinates of the vertical and horizontal lines that form the mesh (held in
Table 3.6 Formation of a typical nodal freedom array
Data Resulting
nf
array
6 130570 9 10 0 00
300240680 0 20 3 40
600
900
001
101
200