node.h

Go to the documentation of this file.
00001 /*
00002 %M This module contains the node data structure definitions
00003 %a Joao Luiz Elias Campos.
00004 %d September 2nd, 1998.
00005 %r $Id: node.h,v 1.3 2004/06/22 20:23:26 joaoluiz Exp $
00006 %w (C) COPYRIGHT 1995-1996, Eduardo Nobre Lages.
00007    (C) COPYRIGHT 1997-1998, Joao Luiz Elias Campos.
00008    All Rights Reserved
00009    Duplication of this program or any part thereof without the express
00010    written consent of the author is prohibited.
00011  *
00012  *   Modified:    30-Aug-05    Alexandre A. Del Savio
00013  *     Adicionado o atributo pilot na estrutura sNode. Este atributo
00014  *     define, quando for igual a 1, se o nó possui deslocamento
00015  *     prescrito na primeira interacao e nas interacoes seguintes passa
00016  *     a ser OBJECT. 
00017  *
00018  *   Modified:    14-Set-06    Juan Pablo Ibanez
00019  *     Criada a estrutura sInfoConst para a constrain associada aos nos,
00020  *     a qual passa a ser utilizada no campo constrain de sNode.
00021  */
00022 
00023 #ifndef _NODE_H
00024 #define _NODE_H
00025 
00026 /*
00027  * %T Display status definition
00028  */
00029 typedef enum _display
00030 {
00031  DSP_NO,
00032  DSP_YES
00033 } eDisplay;
00034 
00035 /*
00036  %T Rezone status definition
00037  */
00038 typedef enum _status
00039 {
00040  NONE,
00041  TODO,
00042  DONE
00043 } eStatus;
00044 
00045 /*
00046 %T Coordinate definition
00047 */
00048 typedef struct _coord
00049 {
00050  double x;
00051  double y;
00052  double z;
00053 } sCoord;
00054 
00055 /*
00056 %T Constrain definition
00057 id (contrain id)
00058 curr_elm (constrain element in which the node is located) 
00059 */
00060 typedef struct _constr
00061 {
00062   int    id;
00063   void*  curr_elm;
00064 }  sNodeConstr;
00065 
00066 /*
00067 %T Restritions type definition
00068 */
00069 typedef enum _resttype
00070 {
00071  FORCE,
00072  DISPLACEMENT,
00073  VELOCITY,
00074  OBJECT
00075 } eRestType;
00076 
00077 /*
00078 %T Dof definition
00079 */
00080 typedef struct _dof
00081 {
00082  eRestType x;
00083  eRestType y;
00084  eRestType z;
00085  double    vpx;
00086  double    vpy;
00087  double    vpz;
00088  double    psi;
00089 } sDof;
00090 
00091 /*
00092 %T Node definition
00093 */
00094 typedef struct _node
00095 {
00096  int         id;
00097  int         curve;
00098  int         pilot;
00099  eDisplay    dspIteration;
00100  eDisplay    dspTime;
00101  eStatus     rezone;
00102  sCoord      coord;
00103  sDof        dof;
00104  sNodeConstr constrain;
00105 } sNode;
00106 
00107 /* Element vector
00108  */
00109 extern sNode *NodeVector;
00110 
00111 /* Number of mesh nodes
00112  */
00113 extern int NumNodes;
00114 
00115 /* Number of degrees of freedown per node
00116  */
00117 extern int NDof;
00118 
00119 /* Public functions
00120  */
00121 void NodeInitPrescValues  ( void );
00122 void NodeFree             ( void );
00123 void NodeApplyForce       ( int, double, double, double );
00124 void NodeApplyDisplacement( int, double, double, double );
00125 void NodeApplyVelocity    ( int, double, double, double );
00126 void NodeInitForceVector  ( double * );
00127 
00128 #endif
00129 

Generated on Tue Oct 23 11:23:30 2007 for Relax by  doxygen 1.5.3