You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.7 KiB
77 lines
2.7 KiB
C Copyright(C) 1999-2020 National Technology & Engineering Solutions
|
|
C of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with
|
|
C NTESS, the U.S. Government retains certain rights in this software.
|
|
C
|
|
C See packages/seacas/LICENSE for details
|
|
|
|
C=======================================================================
|
|
SUBROUTINE DEFXYZ (A, ISTEP, FACTOR, SURONL, NPSURF,
|
|
& XN, YN, ZN, DXN, DYN, DZN)
|
|
C=======================================================================
|
|
|
|
C --*** DEFXYZ *** (MESH) Calculate deformed mesh coordinates
|
|
C -- Written by Amy Gilkey - revised 10/12/87
|
|
C -- D. P. Flanagan, 11/17/82
|
|
C --
|
|
C --DEFXYZ calculates the deformed mesh coordinates for a time step.
|
|
C --The displacement variables for the time steps are input and the
|
|
C --deformed mesh coordinates are calculated.
|
|
C --
|
|
C --Parameters:
|
|
C -- A - IN - the dynamic memory base array
|
|
C -- ISTEP - IN - the time step number
|
|
C -- FACTOR - IN - the magnification factor
|
|
C -- SURONL - IN - deform NPSURF nodes only if true (always true for 3D)
|
|
C -- XN, YN, ZN - IN - the nodal coordinates (ZN for 3D only)
|
|
C -- NPSURF - IN - the node numbers of the surface nodes
|
|
C -- or mesh boundary nodes (2D)
|
|
C -- DXN, DYN, DZN - OUT - the deformed nodal coordinates
|
|
C -- (DZN for 3D only)
|
|
C --
|
|
C --Common Variables:
|
|
C -- Uses NDIM of /DBNUMS/
|
|
C -- Uses IS3DIM, NUMNPF of /D3NUMS/
|
|
C -- Sets IXDEF, IYDEF, IZDEF of /DEFORM/
|
|
|
|
include 'dbnums.blk'
|
|
COMMON /D3NUMS/ IS3DIM, NNPSUR, NUMNPF, LLNSET
|
|
LOGICAL IS3DIM
|
|
COMMON /DEFORM/ DEFPRO, DEFOK, DEFFAC, DDFAC, DFAC,
|
|
& IXDEF, IYDEF, IZDEF
|
|
LOGICAL DEFPRO, DEFOK
|
|
|
|
DIMENSION A(*)
|
|
LOGICAL SURONL
|
|
INTEGER NPSURF(*)
|
|
REAL XN(NUMNPF), YN(NUMNPF), ZN(NUMNPF)
|
|
REAL DXN(NUMNPF), DYN(NUMNPF), DZN(NUMNPF)
|
|
|
|
CALL GTMVAR (A, IXDEF, -999, ISTEP, NUMNPF, DXN)
|
|
CALL GTMVAR (A, IYDEF, -999, ISTEP, NUMNPF, DYN)
|
|
IF (IS3DIM) CALL GTMVAR (A, IZDEF, -999, ISTEP, NUMNPF, DZN)
|
|
|
|
IF (.NOT. IS3DIM) THEN
|
|
IF (SURONL) THEN
|
|
DO 100 IX = 1, NNPSUR
|
|
INP = NPSURF(IX)
|
|
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
|
|
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
|
|
100 CONTINUE
|
|
ELSE
|
|
DO 110 INP = 1, NUMNPF
|
|
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
|
|
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
|
|
110 CONTINUE
|
|
END IF
|
|
|
|
ELSE
|
|
DO 120 IX = 1, NNPSUR
|
|
INP = NPSURF(IX)
|
|
DXN(INP) = XN(INP) + FACTOR * DXN(INP)
|
|
DYN(INP) = YN(INP) + FACTOR * DYN(INP)
|
|
DZN(INP) = ZN(INP) + FACTOR * DZN(INP)
|
|
120 CONTINUE
|
|
END IF
|
|
|
|
RETURN
|
|
END
|
|
|