Skip to content

Commit

Permalink
engine_ext_upml: convert to ArrayLib.
Browse files Browse the repository at this point in the history
Signed-off-by: Yifeng Li <[email protected]>
  • Loading branch information
biergaizi committed Nov 22, 2024
1 parent f9ebaeb commit 78b1e6a
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 40 deletions.
8 changes: 2 additions & 6 deletions FDTD/extensions/engine_ext_upml.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,14 @@ Engine_Ext_UPML::Engine_Ext_UPML(Operator_Ext_UPML* op_ext) : Engine_Extension(o
//this ABC extension should be executed first!
m_Priority = ENG_EXT_PRIO_UPML;

volt_flux = Create_N_3DArray<FDTD_FLOAT>(m_Op_UPML->m_numLines);
curr_flux = Create_N_3DArray<FDTD_FLOAT>(m_Op_UPML->m_numLines);
volt_flux.Init("volt_flux", m_Op_UPML->m_numLines);
curr_flux.Init("curr_flux", m_Op_UPML->m_numLines);

SetNumberOfThreads(1);
}

Engine_Ext_UPML::~Engine_Ext_UPML()
{
Delete_N_3DArray<FDTD_FLOAT>(volt_flux,m_Op_UPML->m_numLines);
volt_flux=NULL;
Delete_N_3DArray<FDTD_FLOAT>(curr_flux,m_Op_UPML->m_numLines);
curr_flux=NULL;
}

void Engine_Ext_UPML::SetNumberOfThreads(int nrThread)
Expand Down
4 changes: 2 additions & 2 deletions FDTD/extensions/engine_ext_upml.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ class Engine_Ext_UPML : public Engine_Extension
vector<unsigned int> m_start;
vector<unsigned int> m_numX;

FDTD_FLOAT**** volt_flux;
FDTD_FLOAT**** curr_flux;
ArrayLib::ArrayNIJK<FDTD_FLOAT> volt_flux;
ArrayLib::ArrayNIJK<FDTD_FLOAT> curr_flux;
};

#endif // ENGINE_EXT_UPML_H
32 changes: 6 additions & 26 deletions FDTD/extensions/operator_ext_upml.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,6 @@ Operator_Ext_UPML::Operator_Ext_UPML(Operator* op) : Operator_Extension(op)
m_StartPos[n]=0;
m_numLines[n]=0;
}

vv = NULL;
vvfo = NULL;
vvfn = NULL;
ii = NULL;
iifo = NULL;
iifn = NULL;
}

Operator_Ext_UPML::~Operator_Ext_UPML()
Expand Down Expand Up @@ -257,18 +250,6 @@ bool Operator_Ext_UPML::Create_UPML(Operator* op, const int ui_BC[6], const unsi

void Operator_Ext_UPML::DeleteOp()
{
Delete_N_3DArray<FDTD_FLOAT>(vv,m_numLines);
vv = NULL;
Delete_N_3DArray<FDTD_FLOAT>(vvfo,m_numLines);
vvfo = NULL;
Delete_N_3DArray<FDTD_FLOAT>(vvfn,m_numLines);
vvfn = NULL;
Delete_N_3DArray<FDTD_FLOAT>(ii,m_numLines);
ii = NULL;
Delete_N_3DArray<FDTD_FLOAT>(iifo,m_numLines);
iifo = NULL;
Delete_N_3DArray<FDTD_FLOAT>(iifn,m_numLines);
iifn = NULL;
}


Expand Down Expand Up @@ -372,13 +353,12 @@ bool Operator_Ext_UPML::BuildExtension()
if (m_Op==NULL)
return false;

DeleteOp();
vv = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
vvfo = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
vvfn = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
ii = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
iifo = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
iifn = Create_N_3DArray<FDTD_FLOAT>(m_numLines);
vv.Init("vv", m_numLines);
vvfo.Init("vvfo", m_numLines);
vvfn.Init("vvfn", m_numLines);
ii.Init("ii", m_numLines);
iifo.Init("iifo", m_numLines);
iifn.Init("iifn", m_numLines);

unsigned int pos[3];
unsigned int loc_pos[3];
Expand Down
14 changes: 8 additions & 6 deletions FDTD/extensions/operator_ext_upml.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#include "FDTD/operator.h"
#include "operator_extension.h"

#include "tools/arraylib/array_nijk.h"

class FunctionParser;

//! Operator extension implementation an uniaxial perfectly matched layer (upml)
Expand Down Expand Up @@ -95,12 +97,12 @@ class Operator_Ext_UPML : public Operator_Extension
virtual FDTD_FLOAT& GetIIFO(int ny, unsigned int pos[3]) {return iifo[ny][pos[0]][pos[1]][pos[2]];}
virtual FDTD_FLOAT& GetIIFN(int ny, unsigned int pos[3]) {return iifn[ny][pos[0]][pos[1]][pos[2]];}

FDTD_FLOAT**** vv; //calc new voltage from old voltage
FDTD_FLOAT**** vvfo; //calc new voltage from old voltage flux
FDTD_FLOAT**** vvfn; //calc new voltage from new voltage flux
FDTD_FLOAT**** ii; //calc new current from old current
FDTD_FLOAT**** iifo; //calc new current from old current flux
FDTD_FLOAT**** iifn; //calc new current from new current flux
ArrayLib::ArrayNIJK<FDTD_FLOAT> vv; //calc new voltage from old voltage
ArrayLib::ArrayNIJK<FDTD_FLOAT> vvfo; //calc new voltage from old voltage flux
ArrayLib::ArrayNIJK<FDTD_FLOAT> vvfn; //calc new voltage from new voltage flux
ArrayLib::ArrayNIJK<FDTD_FLOAT> ii; //calc new current from old current
ArrayLib::ArrayNIJK<FDTD_FLOAT> iifo; //calc new current from old current flux
ArrayLib::ArrayNIJK<FDTD_FLOAT> iifn; //calc new current from new current flux
};

#endif // OPERATOR_EXT_UPML_H

0 comments on commit 78b1e6a

Please sign in to comment.