diff --git a/src/trapping/cfrfme.cpp b/src/trapping/cfrfme.cpp index e1a5f84d089ae7ac1299a3022f741431e17b6b30..0f7370e96d2d09d363e5218fbed9d2d39b572ffa 100644 --- a/src/trapping/cfrfme.cpp +++ b/src/trapping/cfrfme.cpp @@ -129,19 +129,19 @@ void frfme(string data_file, string output_path) { if (tt2 != NULL) { vkv = tt2->get_vector(); vkzm = tt2->get_matrix(); - apfafa = tt2->get_param("apfafa"); - pmf = tt2->get_param("pmf"); - spd = tt2->get_param("spd"); - rir = tt2->get_param("rir"); - ftcn = tt2->get_param("ftcn"); - fshmx = tt2->get_param("fshmx"); - vxyzmx = tt2->get_param("vxyzmx"); - delxyz = tt2->get_param("delxyz"); - vknmx = tt2->get_param("vknmx"); - delk = tt2->get_param("delk"); - delks = tt2->get_param("delks"); - nlmmt = (int)tt2->get_param("nlmmt"); - nrvc = (int)tt2->get_param("nrvc"); + apfafa = tt2->apfafa; + pmf = tt2->pmf; + spd = tt2->spd; + rir = tt2->rir; + ftcn = tt2->ftcn; + fshmx = tt2->fshmx; + vxyzmx = tt2->vxyzmx; + delxyz = tt2->delxyz; + vknmx = tt2->vknmx; + delk = tt2->delk; + delks = tt2->delks; + nlmmt = tt2->nlmmt; + nrvc = tt2->nrvc; } else { printf("ERROR: could not open TEMPTAPE2 file.\n"); } @@ -273,10 +273,10 @@ void frfme(string data_file, string output_path) { long swap1_size, swap2_size, tfrfme_size; double size_mb; printf("INFO: calculating memory requirements\n"); - swap1_size = Swap1::get_memory_requirement(lm, nkv); + swap1_size = Swap1::get_size(lm, nkv); size_mb = 1.0 * swap1_size / 1024.0 / 1024.0; printf("Swap 1: %.2lg MB\n", size_mb); - swap2_size = Swap2::get_memory_requirement(nkv); + swap2_size = Swap2::get_size(nkv); size_mb = 1.0 * swap2_size / 1024.0 / 1024.0; printf("Swap 2: %.2lg MB\n", size_mb); tt2 = new Swap2(nkv); @@ -374,13 +374,14 @@ void frfme(string data_file, string output_path) { #ifdef USE_NVTX nvtxRangePop(); #endif - dcomplex *vec_w = new dcomplex[nkv * nkv](); - dcomplex **w = new dcomplex*[nkv]; - for (int wi = 0; wi < nkv; wi++) w[wi] = vec_w + wi * nkv; #ifdef USE_NVTX nvtxRangePush("j80 loop"); #endif +#pragma omp parallel for for (int j80 = jlmf; j80 <= jlml; j80++) { + dcomplex *vec_w = new dcomplex[nkv * nkv](); + dcomplex **w = new dcomplex*[nkv]; + for (int wi = 0; wi < nkv; wi++) w[wi] = vec_w + wi * nkv; int wk_index = 0; for (int jy50 = 0; jy50 < nkv; jy50++) { for (int jx50 = 0; jx50 < nkv; jx50++) { @@ -419,9 +420,9 @@ void frfme(string data_file, string output_path) { } // ix65 loop } // iy70 loop } // iz75 loop + delete[] vec_w; + delete[] w; } // j80 loop - delete[] vec_w; - delete[] w; #ifdef USE_NVTX nvtxRangePop(); #endif