AcouSTO  version 2.0

◆ cleanup()

void cleanup ( )

Cleans up allocated memory

26  {
27  int i;
28  int nfreq;
29  nfreq = modsolinfo->nsig * modsolinfo->nome;
30 
31  if (0 == rank){
33  }
35 
36  if (geometry) {
37  _SAFE_FREE(geometry->nodes);
38  _SAFE_FREE(geometry->mics);
39  _SAFE_FREE(geometry->cntrc);
40  _SAFE_FREE(geometry->cntr);
41  _SAFE_FREE(geometry->elements);
42  _SAFE_FREE(geometry->jnodb);
43  if(modgeominfo->nemics > 0) _SAFE_FREE(geometry->jnodm);
44  if(modgeominfo->nemics > 0) _SAFE_FREE(geometry->kelmm);
45  _SAFE_FREE(geometry->jphib);
46  _SAFE_FREE(geometry->jpsib);
47  _SAFE_FREE(geometry->mvrtb);
48  _SAFE_FREE(geometry->kcreb);
49  _SAFE_FREE(geometry->kelmb);
50  if (modgeominfo->nchief > 0) _SAFE_FREE(geometry->chief);
51  free(geometry);
52  }
53  if (modgeominfo) {
54  free(modgeominfo);
55  }
56  if (modcoefacinfo) {
58  }
59  if (modcoemicinfo) {
61  }
63  if (runinfo->krow < 0) {
66  }
67 
69  }
70 
72  if (runinfo->krow < 0) {
75  }
77  }
78 
79  if (solution) {
80  if (0 < modsolinfo->nimped)
82  if (0 < modsolinfo->nimped)
84  if (0 < modsolinfo->nradian)
86  if (0 < modsolinfo->nradian)
93 
103 
104  if (0 < modsolinfo->n_freqresp_cnt)
106  if (0 < modsolinfo->n_freqresp_mic)
108 
112  }
114 
119  }
121 
122  }
123 
126  _SAFE_FREE(bc.func);
127 
128  // FREEING GMSHBC // gp
129  if(2==modsolinfo->custombc){
130  for(i=0;i<nphystags; i++){
131  _SAFE_FREE(phystags[i].ptrgmshbc);
132  }
134  }
135 
137 
138  if (0 == rank)
140 
141 
142  MPI_Type_free(&mpi_element_type);
143  MPI_Type_free(&mpi_vector_type);
144  MPI_Type_free(&mpi_acoustic_point_type);
145  MPI_Type_free(&mpi_runinfo_type);
146  MPI_Type_free(&mpi_geominfo_type);
147  MPI_Type_free(&mpi_solinfo_type);
148 
149  MPI_Type_free(&mpi_complex);
150  MPI_Op_free(&mpi_op_complex_sum);
151  //FREEING GEOMETRIES
152  for (i = 0; i < ngeometries; i++) {
153  _SAFE_FREE(geometries[i].ptrgeom);
154  }
156 
157  if (rank == 0 && rundetails != NULL) {
162  }
164 
165 #ifdef _MYSQL_
166  _SAFE_FREE(mysqlinfo);
167 #endif
168 
170 
171 }
int ngeometries
Definition: globals.h:64
char * out_filepath
Definition: structs.h:143
struct geometry * geometries
Definition: globals.h:66
int * i_freqresp_cnt
Definition: structs.h:610
struct bodycoefs_struct * bodycoefs
Definition: globals.h:48
struct run_info * runinfo
Definition: globals.h:34
COMPLEX * matBK
Definition: structs.h:599
MPI_Datatype mpi_solinfo_type
Definition: globals.h:118
int nimped
Definition: structs.h:450
COMPLEX * matY
Definition: structs.h:603
#define _SAFE_FREE(x)
Definition: allocation.h:41
DOUBLE * C
Definition: structs.h:372
MPI_Datatype mpi_complex
Definition: globals.h:93
struct acoustic_point * planw
Definition: structs.h:575
int * i_freqresp_mic
Definition: structs.h:612
int nemics
Definition: structs.h:305
COMPLEX * matZZ
Definition: structs.h:594
COMPLEX * matZ
Definition: structs.h:596
char * cfg_filename
Definition: structs.h:137
Vec vecPsinc
Definition: structs.h:580
MPI_Datatype mpi_geominfo_type
Definition: globals.h:114
char * out_filedir
Definition: structs.h:141
int n_freqresp_mic
Definition: structs.h:499
DOUBLE * B
Definition: structs.h:385
COMPLEX * lambda
Definition: structs.h:623
int nchief
Definition: structs.h:301
COMPLEX * sol
Definition: structs.h:607
MPI_Op mpi_op_complex_sum
Definition: globals.h:124
struct dipole * dipoles
Definition: structs.h:563
struct phystag * phystags
Definition: globals.h:58
DOUBLE * C
Definition: structs.h:387
struct bc_struct bc
Definition: globals.h:54
int nsig
Definition: structs.h:456
int n_freqresp_cnt
Definition: structs.h:497
DOUBLE * B
Definition: structs.h:370
char * cfg_filepath
Definition: structs.h:139
Vec vecPhinc
Definition: structs.h:578
struct file_info * fileinfo
Definition: globals.h:32
COMPLEX * matB
Definition: structs.h:600
DOUBLE * ome
Definition: structs.h:558
DOUBLE * sig
Definition: structs.h:556
struct modcoefac_info * modcoefacinfo
Definition: globals.h:40
void acousto_config_destroy()
Definition: config.c:75
COMPLEX * zimp
Definition: structs.h:566
int * iradian
Definition: structs.h:573
int nphystags
Definition: globals.h:62
struct acoustic_point * sources
Definition: structs.h:561
struct solution_struct * solution
Definition: globals.h:52
MPI_Datatype mpi_runinfo_type
Definition: globals.h:110
Vec vecPhincm
Definition: structs.h:582
MPI_Datatype mpi_vector_type
Definition: globals.h:97
int custombc
Definition: structs.h:523
BOOL pre_calculate_coefs
Definition: structs.h:519
Vec vecPsiu
Definition: structs.h:584
struct modsol_info * modsolinfo
Definition: globals.h:44
int * izimp
Definition: structs.h:568
COMPLEX * gamma
Definition: structs.h:624
int nradian
Definition: structs.h:452
Vec vecPhium
Definition: structs.h:586
COMPLEX * radian
Definition: structs.h:571
Vec vecPrescm
Definition: structs.h:588
MPI_Datatype mpi_element_type
Definition: globals.h:101
char * datfile
Definition: globals.h:29
int rank
Definition: globals.h:79
COMPLEX * matBH
Definition: structs.h:598
int nome
Definition: structs.h:458
COMPLEX * func
Definition: structs.h:625
struct run_details * rundetails
Definition: globals.h:36
MPI_Datatype mpi_acoustic_point_type
Definition: globals.h:105
struct modcoemic_info * modcoemicinfo
Definition: globals.h:42
int krow
Definition: structs.h:105
Geometry info structure.
Definition: structs.h:161
struct micscoefs_struct * micscoefs
Definition: globals.h:50
Vec vecPretm
Definition: structs.h:590
COMPLEX * rhs
Definition: structs.h:605
struct modgeom_info * modgeominfo
Definition: globals.h:38