Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 2.2 Symmetrization and "gluing together" of Up: 2 Manipulation of solutions Prev: 2 Manipulation of solutions Contents


2.1 Manual construction of a D.S. B

Preprocessor COSDXX constructs a D.S. B from:

For the case where a given value is assigned (via a vector), module COSDB is called. To assign a value dependent on the nodal coordinates, we use module COSNOB which, for a constant ND, exploits D.S. NOPO, or we use module COSMCB which, for arbitrary ND, exploits D.S. MAIL and COOR.

Module COSDB corresponds to the case where we input a vector (U), or two vectors (U et V), to construct the D.S. B such that:

or, to create one structure with two arrays B4 (two vectors are therefore used):

      SUBROUTINE COSDB(M,NVEC,U,V,LUV,ND,NFB,NIB,NTAB)
C  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C  UTILITY COSDB : CREATE A DS B FROM ONE OR TWO VECTORS
C  -------------
C  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

where

If NTAB is non-zero, we need to input:

Loop I from 1 to NTAB

End of loop.

Module COSNOB corresponds to the case where one vector (U) or two vectors (U and V) are calculated to construct the D.S. B such that:

or, to create a structure with two arrays B4 (two vectors are therefore used):

Functions VALCL* are in fact VALCLR, in single precision, and VALCLD, in double precision. Their arguments are I (from 1 to ND), assumed constant, see lower down) the degree of freedom number, X, Y and Z the coordinates of the point under consideration read into array NOP4 of data structure NOPO. These functions are input:

  

      SUBROUTINE COSNOB(M,XM,NFNOPO,NINOPO,NVEC,U,V,DU,DV,ND,
     +                  NFB,NIB,NTAB,FONINT,VALCLR,VALCLD)
C  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C  UTILITY COSNOB : CREATE A DS B FROM NOPO AND A FUNCTION
C  --------------  ( SAME AIM AS COSDB )
C  U(I) ( V(I) ) = FUNCTION(X(I),Y(I),Z(I)) AT POINT IOF THE DS NOPO
C  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

where

If NTAB is non-zero, we must input:

Loop I from 1 to NTAB

End of loop.

Depending on the value of FONINT, we need to, or not, write functions VALCL*. VALCLR and VALCLD have the following form:

      FUNCTION VALCLR(I,X,Y,Z)

      DOUBLE PRECISION FUNCTION VALCLD(I,X,Y,Z)

Note further that the number of variables of the vectors is calculated as where NP is the number of points in the mesh.

Module COSMCB corresponds to the case where vector (U) or two vectors (U et V) are calculated to construct the D.S. B such that:

or, to create a structure with two arrays B4 (two vectors are therefore used):

Functions VALCL* are in fact VALCLR in single precision and VALCLD in double precision. Their arguments are I (from 1 to ND, see lower down) the degree of freedom number, X, Y and Z the coordinates of the point under consideration read into array COO4 of structure COOR associated to the MAIL data structure. These functions are input:

      SUBROUTINE COSMCB (M,XM,DM,NFMAIL,NIMAIL,NFCOOR,NICOOR,NVEC,
     +   NFB,NIB,NTAB,FONINT,VALCLR,VALCLD,U,V,DU,DV)
C ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
C  UTILITY COSMCB : CREATE A DS B FROM MAIL AND COOR AND
C  --------------   A FUNCTION ( SAME AIM AS COSDB )
C  U(I) ( V(I) ) = FUNCTION(X(I),Y(I),Z(I)) AT POINT I OF DS COOR
C  +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

where

If NTAB is non-zero, we must input:

Loop I from 1 to NTAB

End of loop.

Depending on the value of FONINT, we need to, or not, write the functions VALCL*. Note that VALCLR and VALCLD have the following form:

      FUNCTION VALCLR(I,X,Y,Z)

      DOUBLE PRECISION FUNCTION VALCLD(I,X,Y,Z)


Modulefpreviousupnextcontents[BIG][Normal][small]
Next: 2.2 Symmetrization and "gluing together" of Up: 2 Manipulation of solutions Prev: 2 Manipulation of solutions Contents