1 /*
2 *	Copyright (C) 2011 Thorsten Liebig (Thorsten.Liebig@gmx.de)
3 *
4 *	This program is free software: you can redistribute it and/or modify
5 *	it under the terms of the GNU General Public License as published by
6 *	the Free Software Foundation, either version 3 of the License, or
7 *	(at your option) any later version.
8 *
9 *	This program is distributed in the hope that it will be useful,
10 *	but WITHOUT ANY WARRANTY; without even the implied warranty of
11 *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 *	GNU General Public License for more details.
13 *
14 *	You should have received a copy of the GNU General Public License
15 *	along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 
18 #ifndef PROCESSFIELDS_SAR_H
19 #define PROCESSFIELDS_SAR_H
20 
21 #include "processfields_fd.h"
22 
23 class ProcessFieldsSAR : public ProcessFieldsFD
24 {
25 public:
26 	ProcessFieldsSAR(Engine_Interface_Base* eng_if);
27 	virtual ~ProcessFieldsSAR();
28 
29 	virtual void SetDumpType(DumpType type);
30 
31 	virtual bool NeedConductivity() const;
32 
GetProcessingName()33 	virtual std::string GetProcessingName() const {return "SAR dump";}
34 
35 	virtual void InitProcess();
36 
37 	virtual int Process();
38 
39 	virtual void SetSubSampling(unsigned int subSampleRate, int dir=-1);
40 
41 	virtual void SetOptResolution(double optRes, int dir=-1);
42 
43 	//! Set to true for using the conductivity found at the center of a cell, or false for E*J instead
SetUseCellConductivity(bool val)44 	virtual void SetUseCellConductivity(bool val) {m_UseCellKappa=val;}
45 
SetSARAveragingMethod(std::string method)46 	virtual void SetSARAveragingMethod(std::string method) {m_SAR_method=method;}
47 
48 protected:
49 	virtual void DumpFDData();
50 
51 	bool m_UseCellKappa;
52 
53 	std::string m_SAR_method;
54 
55 	//! frequency domain electric field storage
56 	std::vector<std::complex<float>****> m_E_FD_Fields;
57 	//! frequency domain current density storage
58 	std::vector<std::complex<float>****> m_J_FD_Fields;
59 };
60 
61 #endif // PROCESSFIELDS_SAR_H
62