1 /*
2 *	Copyright (C) 2013 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 Lesser General Public License as published
6 *	by 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 Lesser General Public License for more details.
13 *
14 *	You should have received a copy of the GNU Lesser General Public License
15 *	along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 */
17 
18 #ifndef CSBACKGROUNDMATERIAL_H
19 #define CSBACKGROUNDMATERIAL_H
20 
21 #include "CSXCAD_Global.h"
22 
23 class TiXmlNode;
24 
25 class CSBackgroundMaterial
26 {
27 public:
28 	CSBackgroundMaterial();
29 
30 	//! Get the rel. electric permittivity
GetEpsilon()31 	double GetEpsilon() const {return m_epsR;}
32 	//! Set the rel. electric permittivity
33 	void SetEpsilon(double val);
34 
35 	//! Get the rel. magnetic permeability
GetMue()36 	double GetMue() const {return m_mueR;}
37 	//! Set the rel. magnetic permeability
38 	void SetMue(double val);
39 
40 	//! Get the electric conductivity
GetKappa()41 	double GetKappa() const {return m_kappa;}
42 	//! Set the electric conductivity
43 	void SetKappa(double val);
44 
45 	//! Get the (artificial) magnetic conductivity
GetSigma()46 	double GetSigma() const {return m_sigma;}
47 	//! Set the (artificial) magnetic conductivity
48 	void SetSigma(double val);
49 
50 	//! Reset all values to default
51 	void Reset();
52 
53 	virtual bool Write2XML(TiXmlNode& root, bool parameterised=true, bool sparse=false);
54 	virtual bool ReadFromXML(TiXmlNode &root);
55 
56 protected:
57 	double m_epsR;
58 	double m_mueR;
59 	double m_kappa;
60 	double m_sigma;
61 };
62 
63 #endif // CSBACKGROUNDMATERIAL_H
64