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