Civil Engineering Reference
In-Depth Information
11.3.1 Subroutine Stiffness_BEM
The tasks for the Stiffness_BEM are essentially the same as for the
General_Purpose_BEM, except that the boundary conditions that are considered are
expanded. We add a new boundary code,2 , which is used to mark nodes at the interface.
The input parameters for SUBROUTINE Stiffness_BEM are the incidence vectors
of the boundary elements, which describe the boundary of the region, the coordinates of
the nodes and the Boundary conditions. Note that the vector of incidences as well as the
coordinates has to be in the local (region) numbering. SUBROUTINE AssemblySTIFF
is basically the same as SUBROUTINE Assembl y, except that a boundary code 2 for
interface conditions has been added. Boundary code 2 is treated the same as code 1
( Dirichlet ) except that columns of [' T ] e are assembled into the array RhsM (multiple
right hand sides). SUBROUTINE Solve is modified into Solve_Multi , which can
handle both single (Rhs) and multiple (RhsM) right hand sides.
The output parameter of the SUBROUTINE is stiffness matrix K and for partially
coupled problems in addition matrix A as well as { t} c . The rows and columns of these
matrices will be numbered in a local (interface) numbering. The values of ^` 0
u
and
f
^` 0
c t are stored in the array El_res which contains the element results. They can be
added at element level.
We show below the library module Stiffness_lib which contains all the necessary
declarations and subroutines for the computation of the stiffness matrix. The symmetry
option has been left out in the implementation shown to simplify the coding.
MODULE Stiffness_lib
USE Utility_lib ; USE Integration_lib ; USE Geometry_lib
IMPLICIT NONE
INTEGER :: Cdim ! Cartesian dimension
INTEGER :: Ndof ! No. of degeres of freedom per node
INTEGER :: Nodel ! No. of nodes per element
INTEGER :: Ndofe ! D.o.F´s / Elem
REAL :: C1,C2 ! material constants
INTEGER, ALLOCATABLE :: Bcode(:,:)
REAL, ALLOCATABLE :: Elres_u(:,:),Elres_t(:,:) ! El. results
CONTAINS
SUBROUTINE Stiffnes_BEM(Nreg,maxe,xP,incie,Ncode,Ndofc,KBE,A,TC)
!---------------------------------------------
! Computes the stiffness matrix of a boundary element region
! no symmetry implemented
!--------------------------------------------
INTEGER,INTENT(IN) :: Nreg ! Region code
INTEGER,INTENT(IN) :: maxe ! Number of boundary elements
REAL, INTENT(IN) :: xP(:,:) ! Array of node coordinates
INTEGER, INTENT(IN):: Incie(:,:) ! Array of incidences
INTEGER, INTENT(IN):: Ncode(:) ! Global restraint code
INTEGER, INTENT(IN):: Ndofc ! No of interface D.o.F.
Search WWH ::




Custom Search