1 /*  basics.c  */
2 
3 #include "../GPart.h"
4 
5 #define MYDEBUG 0
6 
7 /*--------------------------------------------------------------------*/
8 /*
9    --------------------------------------------
10    construct a new instance of the GPart object
11 
12    created -- 95oct05, cca
13    --------------------------------------------
14 */
15 GPart *
GPart_new(void)16 GPart_new (
17    void
18 ) {
19 GPart   *gpart ;
20 
21 ALLOCATE(gpart, struct _GPart, 1) ;
22 
23 GPart_setDefaultFields(gpart) ;
24 
25 return(gpart) ; }
26 
27 /*--------------------------------------------------------------------*/
28 /*
29    ---------------------------------------------
30    set the default fields of the GPart object
31 
32    created  -- 95oct05, cca
33    modified -- 95nov29, cca
34       par, fch, sib and vtxMap fields included
35    ---------------------------------------------
36 */
37 void
GPart_setDefaultFields(GPart * gpart)38 GPart_setDefaultFields (
39    GPart   *gpart
40 ) {
41 if ( gpart == NULL ) {
42    fprintf(stderr, "\n fatal error in GPart_setDefaultFields(%p)"
43            "\n bad input\n", gpart) ;
44    exit(-1) ;
45 }
46 gpart->id       =  -1  ;
47 gpart->g        = NULL ;
48 gpart->nvtx     =   0  ;
49 gpart->nvbnd    =   0  ;
50 gpart->ncomp    =   0  ;
51 gpart->par      = NULL ;
52 gpart->fch      = NULL ;
53 gpart->sib      = NULL ;
54 IV_setDefaultFields(&gpart->compidsIV)  ;
55 IV_setDefaultFields(&gpart->cweightsIV) ;
56 IV_setDefaultFields(&gpart->vtxMapIV)   ;
57 gpart->msglvl  =   0  ;
58 gpart->msgFile = NULL ;
59 
60 return ; }
61 
62 /*--------------------------------------------------------------------*/
63 /*
64    ---------------------------------------------
65    clear the data fields for a GPart object
66 
67    created  -- 95oct05, cca
68    modified -- 95nov29, cca
69       par, fch, sib and vtxMap fields included
70    ---------------------------------------------
71 */
72 void
GPart_clearData(GPart * gpart)73 GPart_clearData (
74    GPart   *gpart
75 ) {
76 if ( gpart == NULL ) {
77    fprintf(stderr, "\n fatal error in GPart_clearData(%p)"
78            "\n bad input\n", gpart) ;
79    exit(-1) ;
80 }
81 IV_clearData(&gpart->compidsIV)  ;
82 IV_clearData(&gpart->cweightsIV) ;
83 IV_clearData(&gpart->vtxMapIV)   ;
84 GPart_setDefaultFields(gpart) ;
85 
86 return ; }
87 
88 /*--------------------------------------------------------------------*/
89 /*
90    ------------------------
91    free the GPart object
92 
93    created  -- 95oct05, cca
94    modified -- 95nov29, cca
95       gpart now free'd
96    ------------------------
97 */
98 void
GPart_free(GPart * gpart)99 GPart_free (
100    GPart   *gpart
101 ) {
102 if ( gpart == NULL ) {
103    fprintf(stderr, "\n fatal error in GPart_free(%p)"
104            "\n bad input\n", gpart) ;
105    exit(-1) ;
106 }
107 GPart_clearData(gpart) ;
108 #if MYDEBUG > 0
109    fprintf(stdout, "\n trying to free gpart") ;
110    fflush(stdout) ;
111 #endif
112 FREE(gpart) ;
113 
114 return ; }
115 
116 /*--------------------------------------------------------------------*/
117