From d7d5802ba9e0261d79629e33b41d813df42899c7 Mon Sep 17 00:00:00 2001 From: Thorsten Liebig Date: Wed, 6 Jun 2012 10:30:47 +0200 Subject: [PATCH] fixed unnecessary memory allocation for lorentz material extension --- .../operator_ext_lorentzmaterial.cpp | 25 ++++++++++++++++--- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/FDTD/extensions/operator_ext_lorentzmaterial.cpp b/FDTD/extensions/operator_ext_lorentzmaterial.cpp index e536f7b..9b25419 100644 --- a/FDTD/extensions/operator_ext_lorentzmaterial.cpp +++ b/FDTD/extensions/operator_ext_lorentzmaterial.cpp @@ -220,10 +220,27 @@ bool Operator_Ext_LorentzMaterial::BuildExtension() m_LM_pos[order] = new unsigned int*[3]; - v_int_ADE[order] = new FDTD_FLOAT*[3]; - v_ext_ADE[order] = new FDTD_FLOAT*[3]; - i_int_ADE[order] = new FDTD_FLOAT*[3]; - i_ext_ADE[order] = new FDTD_FLOAT*[3]; + if (m_volt_ADE_On[order]) + { + v_int_ADE[order] = new FDTD_FLOAT*[3]; + v_ext_ADE[order] = new FDTD_FLOAT*[3]; + } + else + { + v_int_ADE[order] = NULL; + v_ext_ADE[order] = NULL; + } + + if (m_curr_ADE_On[order]) + { + i_int_ADE[order] = new FDTD_FLOAT*[3]; + i_ext_ADE[order] = new FDTD_FLOAT*[3]; + } + else + { + i_int_ADE[order] = NULL; + i_ext_ADE[order] = NULL; + } for (int n=0; n<3; ++n) {