diff --git a/examples/Coax_Cart.xml b/examples/Coax_Cart.xml deleted file mode 100644 index 69910be..0000000 --- a/examples/Coax_Cart.xml +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - - - - -230,-225,-220,-215,-210,-205,-200,-195,-190,-185,-180,-175,-170,-165,-160,-155,-150,-145,-140,-135,-130,-125,-120,-115,-110,-105,-100,-95,-90,-85,-80,-75,-70,-65,-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230 - -230,-225,-220,-215,-210,-205,-200,-195,-190,-185,-180,-175,-170,-165,-160,-155,-150,-145,-140,-135,-130,-125,-120,-115,-110,-105,-100,-95,-90,-85,-80,-75,-70,-65,-60,-55,-50,-45,-40,-35,-30,-25,-20,-15,-10,-5,0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200,205,210,215,220,225,230 - -500,-490,-480,-470,-460,-450,-440,-430,-420,-410,-400,-390,-380,-370,-360,-350,-340,-330,-320,-310,-300,-290,-280,-270,-260,-250,-240,-230,-220,-210,-200,-190,-180,-170,-160,-150,-140,-130,-120,-110,-100,-90,-80,-70,-60,-50,-40,-30,-20,-10,0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500,510,520,530,540,550,560,570,580,590,600,610,620,630,640,650,660,670,680,690,700,710,720,730,740,750,760,770,780,790,800,810,820,830,840,850,860,870,880,890,900,910,920,930,940,950,960,970,980,990,1000,1010,1020,1030,1040,1050,1060,1070,1080,1090,1100,1110,1120,1130,1140,1150,1160,1170,1180,1190,1200,1210,1220,1230,1240,1250,1260,1270,1280,1290,1300,1310,1320,1330,1340,1350,1360,1370,1380,1390,1400,1410,1420,1430,1440,1450,1460,1470,1480,1490,1500 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/Dipol.xml b/examples/Dipol.xml deleted file mode 100644 index 31a19e6..0000000 --- a/examples/Dipol.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - - - - -990,-970,-950,-930,-910,-890,-870,-850,-830,-810,-790,-770,-750,-730,-710,-690,-670,-650,-630,-610,-590,-570,-550,-530,-510,-490,-470,-450,-430,-410,-390,-370,-350,-330,-310,-290,-270,-250,-230,-210,-190,-170,-150,-130,-110,-90,-70,-50,-30,-10,10,30,50,70,90,110,130,150,170,190,210,230,250,270,290,310,330,350,370,390,410,430,450,470,490,510,530,550,570,590,610,630,650,670,690,710,730,750,770,790,810,830,850,870,890,910,930,950,970,990 - -990,-970,-950,-930,-910,-890,-870,-850,-830,-810,-790,-770,-750,-730,-710,-690,-670,-650,-630,-610,-590,-570,-550,-530,-510,-490,-470,-450,-430,-410,-390,-370,-350,-330,-310,-290,-270,-250,-230,-210,-190,-170,-150,-130,-110,-90,-70,-50,-30,-10,10,30,50,70,90,110,130,150,170,190,210,230,250,270,290,310,330,350,370,390,410,430,450,470,490,510,530,550,570,590,610,630,650,670,690,710,730,750,770,790,810,830,850,870,890,910,930,950,970,990 - -990,-970,-950,-930,-910,-890,-870,-850,-830,-810,-790,-770,-750,-730,-710,-690,-670,-650,-630,-610,-590,-570,-550,-530,-510,-490,-470,-450,-430,-410,-390,-370,-350,-330,-310,-290,-270,-250,-230,-210,-190,-170,-150,-130,-110,-90,-70,-50,-30,-10,10,30,50,70,90,110,130,150,170,190,210,230,250,270,290,310,330,350,370,390,410,430,450,470,490,510,530,550,570,590,610,630,650,670,690,710,730,750,770,790,810,830,850,870,890,910,930,950,970,990 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/FDTD_examples.cpp b/examples/FDTD_examples.cpp deleted file mode 100644 index 3420e31..0000000 --- a/examples/FDTD_examples.cpp +++ /dev/null @@ -1,876 +0,0 @@ -/* -* Copyright (C) 2010 Thorsten Liebig (Thorsten.Liebig@gmx.de) -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ - -#include "FDTD_examples.h" -#include "../tools/constants.h" - -void BuildDipol(const char* filename) -{ - int maxIter = 1000; - double f0=0.5e9; - double fc=0.5e9; - int Excit_Type=0; - int bounds[] = {1,1,0,0,0,0}; - - cerr << "Create Geometry..." << endl; - ContinuousStructure CSX; - - CSPropMaterial* mat = new CSPropMaterial(CSX.GetParameterSet()); - mat->SetKappa(0.001); - CSX.AddProperty(mat); - - CSPrimBox* matbox = new CSPrimBox(CSX.GetParameterSet(),mat); - matbox->SetCoord(0,-1000.0);matbox->SetCoord(1,1000.0); - matbox->SetCoord(2,-1000.0);matbox->SetCoord(3,1000.0); - matbox->SetCoord(4,-1000.0);matbox->SetCoord(5,1000.0); - CSX.AddPrimitive(matbox); - - CSPropElectrode* elec = new CSPropElectrode(CSX.GetParameterSet()); - elec->SetExcitation(1,1); - elec->SetExcitType(1); - elec->SetActiveDir(0,0);//disable x - elec->SetActiveDir(0,2);//disable z -// elec->SetDelay(2.0e-9); - CSX.AddProperty(elec); - - CSPrimBox* box = new CSPrimBox(CSX.GetParameterSet(),elec); - box->SetCoord(0,-10.0);box->SetCoord(1,10.0); - box->SetCoord(2,-75.0);box->SetCoord(3,75.0); - box->SetCoord(4,-10.0);box->SetCoord(5,10.0); - CSX.AddPrimitive(box); - - CSRectGrid* grid = CSX.GetGrid(); - - for (int n=-990;n<=990;n+=20) - grid->AddDiscLine(2,(double)n); - for (int n=-990;n<=990;n+=20) - grid->AddDiscLine(0,(double)n); - for (int n=-990;n<=990;n+=20) - grid->AddDiscLine(1,(double)n); - - grid->SetDeltaUnit(1e-3); - - //*************** Create XML file ********************** - TiXmlDocument doc(filename); - doc.InsertEndChild(TiXmlDeclaration("1.0","ISO-8859-1","yes")); - - TiXmlElement openEMS("openEMS"); - - TiXmlElement FDTD_Opts("FDTD"); - FDTD_Opts.SetAttribute("NumberOfTimesteps",maxIter); - - TiXmlElement Excite("Excitation"); - Excite.SetAttribute("Type",Excit_Type); - Excite.SetAttribute("f0",f0); - Excite.SetAttribute("fc",fc); - FDTD_Opts.InsertEndChild(Excite); - - TiXmlElement BC("BoundaryCond"); - BC.SetAttribute("xmin",bounds[0]); - BC.SetAttribute("xmax",bounds[1]); - BC.SetAttribute("ymin",bounds[2]); - BC.SetAttribute("ymax",bounds[3]); - BC.SetAttribute("zmin",bounds[4]); - BC.SetAttribute("zmax",bounds[5]); - FDTD_Opts.InsertEndChild(BC); - - openEMS.InsertEndChild(FDTD_Opts); - - if (CSX.Write2XML(&openEMS,true,true)==false) - { - cerr << "writing failed" << endl; - exit(-1); - } - - doc.InsertEndChild(openEMS); - - doc.SaveFile(); -} - -void BuildPlaneWave(const char* filename) -{ - int maxIter = 10000; - double f0=0.5e9; - double fc=0.5e9; - int Excit_Type=0; - int bounds[] = {1,1,0,0,0,0}; - - cerr << "Create Geometry..." << endl; - ContinuousStructure CSX; - - double width = 1000; - double hight = 1000; - double length = 4000; - double abs_l = 200; - - CSPrimBox* box = NULL; - //fake pml.... - CSPropMaterial* mat = new CSPropMaterial(CSX.GetParameterSet()); -// mat->SetEpsilon(3.6); - double finalKappa = 0.3/pow(abs_l,4); - mat->SetKappa(finalKappa); - std::ostringstream fct; - fct << "pow(abs(z)-" << length/2.0-abs_l << ",4)"; - mat->SetKappaWeightFunction(fct.str(),0); - mat->SetKappaWeightFunction(fct.str(),1); - mat->SetKappaWeightFunction(fct.str(),2); - mat->SetSigma(finalKappa*__MUE0__/__EPS0__); - mat->SetSigmaWeightFunction(fct.str(),0); - mat->SetSigmaWeightFunction(fct.str(),1); - mat->SetSigmaWeightFunction(fct.str(),2); - CSX.AddProperty(mat); - box = new CSPrimBox(CSX.GetParameterSet(),mat); - box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); - box->SetCoord(2,hight/-2.0);box->SetCoord(3,hight/2.0); - box->SetCoord(4,length/2.0-abs_l); box->SetCoord(5,length/2.0); - CSX.AddPrimitive(box); - box = new CSPrimBox(CSX.GetParameterSet(),mat); - box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); - box->SetCoord(2,hight/-2.0);box->SetCoord(3,hight/2.0); - box->SetCoord(4,length/-2.0+abs_l); box->SetCoord(5,length/-2.0); - CSX.AddPrimitive(box); - - CSPropMaterial* mat2 = new CSPropMaterial(CSX.GetParameterSet()); - mat2->SetEpsilon(2); - CSX.AddProperty(mat2); - CSPrimCylindricalShell* cylshell = new CSPrimCylindricalShell(CSX.GetParameterSet(),mat2); - cylshell->SetRadius(length/4.0); - cylshell->SetShellWidth(200.0); - cylshell->SetCoord(0,0.0);cylshell->SetCoord(1,0.0); - cylshell->SetCoord(2,hight/-2.0);cylshell->SetCoord(3,hight/2.0); - cylshell->SetCoord(4,0.0);cylshell->SetCoord(5,0.0); - CSX.AddPrimitive(cylshell); - - CSPropElectrode* elec = new CSPropElectrode(CSX.GetParameterSet()); - elec->SetExcitation(1,1); - elec->SetExcitType(0); - elec->SetActiveDir(0,0);//disable x - elec->SetActiveDir(0,2);//disable z -// elec->SetDelay(2.0e-9); - CSX.AddProperty(elec); - - box = new CSPrimBox(CSX.GetParameterSet(),elec); - box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); - box->SetCoord(2,hight/-2.0);box->SetCoord(3,hight/2.0); - box->SetCoord(4,0.0);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - //E-field dump - CSPropDumpBox* Edump = new CSPropDumpBox(CSX.GetParameterSet()); - Edump->SetDumpType(0); - Edump->SetName("Et_"); - CSX.AddProperty(Edump); - box = new CSPrimBox(CSX.GetParameterSet(),Edump); - box->SetCoord(0,width/-3.0);box->SetCoord(1,width/3.0); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,length/-2.0+abs_l);box->SetCoord(5,length/2.0-abs_l); - CSX.AddPrimitive(box); - - //H-field dump - CSPropDumpBox* Hdump = new CSPropDumpBox(CSX.GetParameterSet()); - Hdump->SetDumpType(1); - Hdump->SetName("Ht_"); - CSX.AddProperty(Hdump); - box = new CSPrimBox(CSX.GetParameterSet(),Hdump); - box->SetCoord(0,width/-3.0);box->SetCoord(1,width/3.0); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,length/-2.0+abs_l);box->SetCoord(5,length/2.0-abs_l); - CSX.AddPrimitive(box); - -// CSPropMetal* metal = new CSPropMetal(CSX.GetParameterSet()); -// CSX.AddProperty(metal); -// CSPrimCylinder* cyl = new CSPrimCylinder(CSX.GetParameterSet(),metal); -// cyl->SetRadius(100); -// cyl->SetCoord(0,0.0);cyl->SetCoord(1,0.0); -// cyl->SetCoord(2,-250.0);cyl->SetCoord(3,250.0); -// cyl->SetCoord(4,-0000.0);cyl->SetCoord(5,-0000.0); -// CSX.AddPrimitive(cyl); - - CSRectGrid* grid = CSX.GetGrid(); - - for (int n=width/-2.0;n<=width/2;n+=20) - grid->AddDiscLine(0,(double)n); - for (int n=hight/-2.0;n<=hight/2.0;n+=20) - grid->AddDiscLine(1,(double)n); - for (int n=length/-2.0;n<=length/2.0;n+=20) - grid->AddDiscLine(2,(double)n); - - grid->SetDeltaUnit(1e-3); - - //*************** Create XML file ********************** - TiXmlDocument doc(filename); - doc.InsertEndChild(TiXmlDeclaration("1.0","ISO-8859-1","yes")); - - TiXmlElement openEMS("openEMS"); - - TiXmlElement FDTD_Opts("FDTD"); - FDTD_Opts.SetAttribute("NumberOfTimesteps",maxIter); - - TiXmlElement Excite("Excitation"); - Excite.SetAttribute("Type",Excit_Type); - Excite.SetAttribute("f0",f0); - Excite.SetAttribute("fc",fc); - FDTD_Opts.InsertEndChild(Excite); - - TiXmlElement BC("BoundaryCond"); - BC.SetAttribute("xmin",bounds[0]); - BC.SetAttribute("xmax",bounds[1]); - BC.SetAttribute("ymin",bounds[2]); - BC.SetAttribute("ymax",bounds[3]); - BC.SetAttribute("zmin",bounds[4]); - BC.SetAttribute("zmax",bounds[5]); - FDTD_Opts.InsertEndChild(BC); - - openEMS.InsertEndChild(FDTD_Opts); - - if (CSX.Write2XML(&openEMS,true,true)==false) - { - cerr << "writing failed" << endl; - exit(-1); - } - - doc.InsertEndChild(openEMS); - - doc.SaveFile(); -} - -void BuildMSL(const char* filename) -{ - int maxIter = 10000; - double f0=0.5e9; - double fc=0.5e9; - int Excit_Type=0; - int bounds[] = {1,1,0,0,0,0}; - - cerr << "Create Geometry..." << endl; - ContinuousStructure CSX; - - double width = 1000; - double height = 500; - double length = 2000; - double abs_l = 200; - double MSL_height=50; - double MSL_width=80; - double delta[] = {20,10,20}; - - //substrate.... - CSPropMaterial* mat = new CSPropMaterial(CSX.GetParameterSet()); -// mat->SetEpsilon(3.6); - double finalKappa = 0.3/pow(abs_l,4); - mat->SetKappa(finalKappa); - std::ostringstream fct; - fct << "pow(abs(z)-" << length/2.0-abs_l << ",4)"; - mat->SetKappaWeightFunction(fct.str(),0); - mat->SetKappaWeightFunction(fct.str(),1); - mat->SetKappaWeightFunction(fct.str(),2); - mat->SetSigma(finalKappa*__MUE0__/__EPS0__); - mat->SetSigmaWeightFunction(fct.str(),0); - mat->SetSigmaWeightFunction(fct.str(),1); - mat->SetSigmaWeightFunction(fct.str(),2); - CSX.AddProperty(mat); - CSPrimBox* box = new CSPrimBox(CSX.GetParameterSet(),mat); - box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); - box->SetCoord(2,0.0);box->SetCoord(3,height); - box->SetCoord(4,length/2.0-abs_l); box->SetCoord(5,length/2.0); - CSX.AddPrimitive(box); -// box = new CSPrimBox(CSX.GetParameterSet(),mat); -// box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); -// box->SetCoord(2,0.0);box->SetCoord(3,hight); -// box->SetCoord(4,length/-2.0+abs_l); box->SetCoord(5,length/-2.0); -// CSX.AddPrimitive(box); - - //MSL - CSProperties* MSL = NULL; - CSPropMaterial* MSL_mat = new CSPropMaterial(CSX.GetParameterSet()); - MSL_mat->SetKappa(56e6); - MSL = MSL_mat; -// MSL = new CSPropMetal(CSX.GetParameterSet()); - - CSX.AddProperty(MSL); - box = new CSPrimBox(CSX.GetParameterSet(),MSL); - box->SetCoord(0,MSL_width/-2.0);box->SetCoord(1,MSL_width/2.0); - box->SetCoord(2,MSL_height);box->SetCoord(3,MSL_height+delta[1]); - box->SetCoord(4,length/-2);box->SetCoord(5,length/2.0); - box->SetPriority(100); - CSX.AddPrimitive(box); - - //MSL excite... - CSPropElectrode* elec = new CSPropElectrode(CSX.GetParameterSet()); - elec->SetExcitation(-1,1); - elec->SetExcitType(0); -// elec->SetDelay(2.0e-9); - CSX.AddProperty(elec); - box = new CSPrimBox(CSX.GetParameterSet(),elec); - box->SetCoord(0,-40.0);box->SetCoord(1,40.0); - box->SetCoord(2,0.0);box->SetCoord(3,50.0); - box->SetCoord(4,length/-2.0);box->SetCoord(5,length/-2.0); - CSX.AddPrimitive(box); - - CSPropDumpBox* Edump = NULL; -// //E-field dump xz -// Edump = new CSPropDumpBox(CSX.GetParameterSet()); -// Edump->SetDumpType(0); -// Edump->SetName("Et_xz_"); -// CSX.AddProperty(Edump); -// box = new CSPrimBox(CSX.GetParameterSet(),Edump); -// box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); -// box->SetCoord(2,25.0);box->SetCoord(3,25.); -// box->SetCoord(4,length/-2.0);box->SetCoord(5,length/2.0); -// CSX.AddPrimitive(box); -// -// //E-field dump xy -// Edump = new CSPropDumpBox(CSX.GetParameterSet()); -// Edump->SetDumpType(0); -// Edump->SetName("Et_xy_"); -// CSX.AddProperty(Edump); -// box = new CSPrimBox(CSX.GetParameterSet(),Edump); -// box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); -// box->SetCoord(2,0.0);box->SetCoord(3,height); -// box->SetCoord(4,0.0);box->SetCoord(5,0.0); -// CSX.AddPrimitive(box); - - //E-field dump 3D - Edump = new CSPropDumpBox(CSX.GetParameterSet()); - Edump->SetDumpType(0); - Edump->SetDumpMode(2); //cell interpolated dump - Edump->SetName("Et_"); - CSX.AddProperty(Edump); - box = new CSPrimBox(CSX.GetParameterSet(),Edump); - box->SetCoord(0,MSL_width*-1.5);box->SetCoord(1,MSL_width*1.5); - box->SetCoord(2,0.0);box->SetCoord(3,MSL_height*1.5); - box->SetCoord(4,length/-2.0);box->SetCoord(5,length/2.0); - CSX.AddPrimitive(box); - - //voltage calc - CSPropProbeBox* volt = new CSPropProbeBox(CSX.GetParameterSet()); - volt->SetProbeType(0); - volt->SetName("u1"); - CSX.AddProperty(volt); - box = new CSPrimBox(CSX.GetParameterSet(),volt); - box->SetCoord(0,0.0);box->SetCoord(1,0.0); - box->SetCoord(2,MSL_height);box->SetCoord(3,0.0); - box->SetCoord(4,0.0);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - //current calc - CSPropProbeBox* curr = new CSPropProbeBox(CSX.GetParameterSet()); - curr->SetProbeType(1); - curr->SetName("i1"); - CSX.AddProperty(curr); - box = new CSPrimBox(CSX.GetParameterSet(),curr); - box->SetCoord(0,MSL_width*-1.5);box->SetCoord(1,MSL_width*1.5); - box->SetCoord(2,MSL_height/2.0);box->SetCoord(3,MSL_height*1.5); - box->SetCoord(4,0.0);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - CSRectGrid* grid = CSX.GetGrid(); - - for (double n=width/-2.0;n<=width/2;n+=delta[0]) - grid->AddDiscLine(0,n); - for (double n=0;n<=height;n+=delta[1]) - grid->AddDiscLine(1,n); - for (double n=length/-2.0;n<=length/2.0;n+=delta[2]) - grid->AddDiscLine(2,n); - - grid->SetDeltaUnit(1e-3); - - //*************** Create XML file ********************** - TiXmlDocument doc(filename); - doc.InsertEndChild(TiXmlDeclaration("1.0","ISO-8859-1","yes")); - - TiXmlElement openEMS("openEMS"); - - TiXmlElement FDTD_Opts("FDTD"); - FDTD_Opts.SetAttribute("NumberOfTimesteps",maxIter); - - TiXmlElement Excite("Excitation"); - Excite.SetAttribute("Type",Excit_Type); - Excite.SetAttribute("f0",f0); - Excite.SetAttribute("fc",fc); - FDTD_Opts.InsertEndChild(Excite); - - TiXmlElement BC("BoundaryCond"); - BC.SetAttribute("xmin",bounds[0]); - BC.SetAttribute("xmax",bounds[1]); - BC.SetAttribute("ymin",bounds[2]); - BC.SetAttribute("ymax",bounds[3]); - BC.SetAttribute("zmin",bounds[4]); - BC.SetAttribute("zmax",bounds[5]); - FDTD_Opts.InsertEndChild(BC); - - openEMS.InsertEndChild(FDTD_Opts); - - if (CSX.Write2XML(&openEMS,true,true)==false) - { - cerr << "writing failed" << endl; - exit(-1); - } - - doc.InsertEndChild(openEMS); - - doc.SaveFile(); -} - -void BuildCoaxial_Cartesian(const char* filename) -{ - int maxIter = 1000; - double f0=1e9; - double fc=1e9; - int Excit_Type=0; - int bounds[] = {0,0,0,0,0,0}; - - cerr << "Create Geometry..." << endl; - ContinuousStructure CSX; - - double rad[] = {100, 230}; - double length[] = {-500,1500}; - double abs_l = 200; - - double delta[] = {5,5,10}; - - CSPrimBox* box = NULL; - //fake pml.... - CSPropMaterial* mat = new CSPropMaterial(CSX.GetParameterSet()); -// mat->SetEpsilon(3.6); - double finalKappa = 0.3/pow(abs_l,4); - mat->SetKappa(finalKappa); - std::ostringstream fct; - fct << "pow(abs(z)-" << length[1]-abs_l << ",4)"; - mat->SetKappaWeightFunction(fct.str(),0); - mat->SetKappaWeightFunction(fct.str(),1); - mat->SetKappaWeightFunction(fct.str(),2); - mat->SetSigma(finalKappa*__MUE0__/__EPS0__); - mat->SetSigmaWeightFunction(fct.str(),0); - mat->SetSigmaWeightFunction(fct.str(),1); - mat->SetSigmaWeightFunction(fct.str(),2); - CSX.AddProperty(mat); - - box = new CSPrimBox(CSX.GetParameterSet(),mat); - box->SetCoord(0,-1.0*rad[1]);box->SetCoord(1,1.0*rad[1]); - box->SetCoord(2,-1.0*rad[1]);box->SetCoord(3,1.0*rad[1]); - box->SetCoord(4,length[1]-abs_l); box->SetCoord(5,length[1]); - box->SetPriority(10); - CSX.AddPrimitive(box); - - CSPropElectrode* elec = new CSPropElectrode(CSX.GetParameterSet()); - elec->SetExcitation(1.0,0); - elec->SetExcitation(1.0,1); - elec->SetWeightFunction("x/pow(rho,2)",0); - elec->SetWeightFunction("y/pow(rho,2)",1); - elec->SetExcitType(0); -// elec->SetActiveDir(0,0);//disable x -// elec->SetActiveDir(0,2);//disable z -// elec->SetDelay(2.0e-9); - CSX.AddProperty(elec); - -// double coords[] = {-100,-100,0}; -// cerr << elec->GetWeightedExcitation(0,coords) << endl; -// cerr << elec->GetWeightedExcitation(1,coords) << endl; -// exit(0); - - box = new CSPrimBox(CSX.GetParameterSet(),elec); - box->SetCoord(0,-1.0*rad[1]);box->SetCoord(1,1.0*rad[1]); - box->SetCoord(2,-1.0*rad[1]);box->SetCoord(3,1.0*rad[1]); - box->SetCoord(4,length[0]);box->SetCoord(5,length[0]); - box->SetPriority(5); - CSX.AddPrimitive(box); - - //E-field dump - CSPropDumpBox* Edump = new CSPropDumpBox(CSX.GetParameterSet()); - Edump->SetDumpType(0); - Edump->SetDumpMode(0); - Edump->SetName("Et_"); - CSX.AddProperty(Edump); - box = new CSPrimBox(CSX.GetParameterSet(),Edump); - box->SetCoord(0,-1*rad[1]);box->SetCoord(1,rad[1]); - box->SetCoord(2,-0*rad[1]);box->SetCoord(3,0*rad[1]); - box->SetCoord(4,length[0]);box->SetCoord(5,length[1]); - CSX.AddPrimitive(box); - - //voltage calc - CSPropProbeBox* volt = new CSPropProbeBox(CSX.GetParameterSet()); - volt->SetProbeType(0); - volt->SetName("u1"); - CSX.AddProperty(volt); - box = new CSPrimBox(CSX.GetParameterSet(),volt); - box->SetCoord(0,rad[0]);box->SetCoord(1,rad[1]); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,0.0);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - //current calc - CSPropProbeBox* curr = new CSPropProbeBox(CSX.GetParameterSet()); - curr->SetProbeType(1); - curr->SetName("i1"); - CSX.AddProperty(curr); - box = new CSPrimBox(CSX.GetParameterSet(),curr); - box->SetCoord(0,-1.5*rad[0]);box->SetCoord(1,1.5*rad[0]); - box->SetCoord(2,-1.5*rad[0]);box->SetCoord(3,1.5*rad[0]); - box->SetCoord(4,0.0);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - CSPropMaterial* metal = new CSPropMaterial(CSX.GetParameterSet()); - metal->SetKappa(56e9); -// CSPropMetal* metal = new CSPropMetal(CSX.GetParameterSet()); - CSX.AddProperty(metal); - CSPrimCylinder* cyl = new CSPrimCylinder(CSX.GetParameterSet(),metal); - cyl->SetRadius(rad[0]); - cyl->SetCoord(0,0.0);cyl->SetCoord(1,0.0); - cyl->SetCoord(2,0.0);cyl->SetCoord(3,0.0); - cyl->SetCoord(4,length[0]);cyl->SetCoord(5,length[1]); - cyl->SetPriority(100); - CSX.AddPrimitive(cyl); - box = new CSPrimBox(CSX.GetParameterSet(),metal); - box->SetCoord(0,-1.0*rad[1]);box->SetCoord(1,1.0*rad[1]); - box->SetCoord(2,-1.0*rad[1]);box->SetCoord(3,1.0*rad[1]); - box->SetCoord(4,length[0]);box->SetCoord(5,length[1]); - box->SetPriority(1); - CSX.AddPrimitive(box); - - CSPropMaterial* air = new CSPropMaterial(CSX.GetParameterSet()); - CSX.AddProperty(air); - cyl = new CSPrimCylinder(CSX.GetParameterSet(),air); - cyl->SetRadius(rad[1]); - cyl->SetCoord(0,0.0);cyl->SetCoord(1,0.0); - cyl->SetCoord(2,0.0);cyl->SetCoord(3,0.0); - cyl->SetCoord(4,length[0]);cyl->SetCoord(5,length[1]); - cyl->SetPriority(9); - CSX.AddPrimitive(cyl); - - CSRectGrid* grid = CSX.GetGrid(); - - for (int n=-1.0*rad[1];n<=rad[1];n+=delta[0]) - grid->AddDiscLine(0,(double)n); - for (int n=-1.0*rad[1];n<=rad[1];n+=delta[1]) - grid->AddDiscLine(1,(double)n); - for (int n=length[0];n<=length[1];n+=delta[2]) - grid->AddDiscLine(2,(double)n); - - grid->SetDeltaUnit(1e-3); - - //*************** Create XML file ********************** - TiXmlDocument doc(filename); - doc.InsertEndChild(TiXmlDeclaration("1.0","ISO-8859-1","yes")); - - TiXmlElement openEMS("openEMS"); - - TiXmlElement FDTD_Opts("FDTD"); - FDTD_Opts.SetAttribute("NumberOfTimesteps",maxIter); - - TiXmlElement Excite("Excitation"); - Excite.SetAttribute("Type",Excit_Type); - Excite.SetAttribute("f0",f0); - Excite.SetAttribute("fc",fc); - FDTD_Opts.InsertEndChild(Excite); - - TiXmlElement BC("BoundaryCond"); - BC.SetAttribute("xmin",bounds[0]); - BC.SetAttribute("xmax",bounds[1]); - BC.SetAttribute("ymin",bounds[2]); - BC.SetAttribute("ymax",bounds[3]); - BC.SetAttribute("zmin",bounds[4]); - BC.SetAttribute("zmax",bounds[5]); - FDTD_Opts.InsertEndChild(BC); - - openEMS.InsertEndChild(FDTD_Opts); - - if (CSX.Write2XML(&openEMS,true,true)==false) - { - cerr << "writing failed" << endl; - exit(-1); - } - - doc.InsertEndChild(openEMS); - - doc.SaveFile(); -} - -void BuildHelix(const char* filename) -{ - int maxIter = 5e5; - double f0=0.5e9; - double fc=0.5e9; - int Excit_Type=0; - int bounds[] = {1,1,1,1,1,1}; - - cerr << "Create Helix Geometry..." << endl; - ContinuousStructure CSX; - - double feed_length=10; - double wire_rad = sqrt(1.4/PI); - double coil_rad = 10; - double coil_length = 50; - int coil_turns = 8; - int coil_res = 10; - double delta[] = {0.5,0.5,0.5}; - - CSPrimBox* box = NULL; - - ParameterSet* PS = CSX.GetParameterSet(); - PS->AddParameter(new Parameter("rad_coil",coil_rad)); - PS->AddParameter(new Parameter("rad_wire",wire_rad)); - PS->AddParameter(new Parameter("turns",coil_turns)); - PS->AddParameter(new Parameter("coil_length",coil_length)); - - CSPropMaterial* copper = new CSPropMaterial(CSX.GetParameterSet()); - copper->SetKappa(56e6); - copper->SetName("copper"); - CSX.AddProperty(copper); - -// CSPropMetal* pec = new CSPropMetal(CSX.GetParameterSet()); -// CSX.AddProperty(pec); -// CSPrimCurve* curve = new CSPrimCurve(CSX.GetParameterSet(),pec); - CSPrimWire* curve = new CSPrimWire(CSX.GetParameterSet(),copper); - curve->SetWireRadius("rad_wire"); - double p[3]; - double dt = 1.0/coil_res; - double height=0; - for (int n=0;nAddPoint(p); - } - height += coil_length/(double)coil_turns; - } -// exit(0); - CSX.AddPrimitive(curve); - -// CSPrimUserDefined* helix = new CSPrimUserDefined(CSX.GetParameterSet(),copper); -// helix->SetCoordSystem(CSPrimUserDefined::CYLINDER_SYSTEM); -// helix->SetFunction("(r>(rad_coil-rad_wire))&(r0)&(zSetCoord(0,coil_rad); box->SetCoord(1,coil_rad+feed_length); - box->SetCoord(2,-0.5); box->SetCoord(3,0.5); - box->SetCoord(4,-0.5); box->SetCoord(5,0.5); - CSX.AddPrimitive(box); - box = new CSPrimBox(CSX.GetParameterSet(),copper); - box->SetCoord(0,coil_rad); box->SetCoord(1,coil_rad+feed_length); - box->SetCoord(2,-0.5); box->SetCoord(3,0.5); - box->SetCoord(4,coil_length-0.5); box->SetCoord(5,coil_length+0.5); - CSX.AddPrimitive(box); - box = new CSPrimBox(CSX.GetParameterSet(),copper); - box->SetCoord(0,coil_rad+feed_length-0.5); box->SetCoord(1,coil_rad+feed_length+0.5); - box->SetCoord(2,-0.5); box->SetCoord(3,0.5); - box->SetCoord(4,0.0); box->SetCoord(5,coil_length);///2.0-delta[2]); - CSX.AddPrimitive(box); - - double kappa_resist = (coil_length/3.0)/50/1e-3; - CSPropMaterial* Src_Resist = new CSPropMaterial(CSX.GetParameterSet()); - Src_Resist->SetKappa(kappa_resist,2); - Src_Resist->SetIsotropy(false); - Src_Resist->SetName("resist"); - CSX.AddProperty(Src_Resist); - box = new CSPrimBox(CSX.GetParameterSet(),Src_Resist); - box->SetPriority(100); - box->SetCoord(0,coil_rad+feed_length-0.5); box->SetCoord(1,coil_rad+feed_length+0.5); - box->SetCoord(2,-0.5); box->SetCoord(3,0.5); - box->SetCoord(4,coil_length/3.0); box->SetCoord(5,coil_length/3.0*2.0);///2.0-delta[2]); - CSX.AddPrimitive(box); -// box = new CSPrimBox(CSX.GetParameterSet(),Src_Resist); -// box->SetCoord(0,coil_rad+feed_length-0.5); box->SetCoord(1,coil_rad+feed_length+0.5); -// box->SetCoord(2,-0.5); box->SetCoord(3,0.5); -// box->SetCoord(4,coil_length/2.0+delta[2]); box->SetCoord(5,coil_length); -// CSX.AddPrimitive(box); - - CSPropElectrode* elec = new CSPropElectrode(CSX.GetParameterSet()); - elec->SetExcitation(1.0,2); - elec->SetExcitType(0); -// elec->SetDelay(2.0e-9); - CSX.AddProperty(elec); - box = new CSPrimBox(CSX.GetParameterSet(),elec); - box->SetCoord(0,coil_rad+feed_length+0.5); box->SetCoord(1,coil_rad+feed_length-0.5); - box->SetCoord(2,-0.5); box->SetCoord(3,0.5); - box->SetCoord(4,coil_length/3.0); box->SetCoord(5,coil_length/3.0*2.0);///2.0-delta[2]); - CSX.AddPrimitive(box); - -// CSPropMetal* elec_mat = new CSPropMetal(CSX.GetParameterSet()); -// CSX.AddProperty(elec_mat); -// box = new CSPrimBox(CSX.GetParameterSet(),elec_mat); -// box->SetCoord(0,coil_rad+feed_length+0.5); box->SetCoord(1,coil_rad+feed_length-0.5); -// box->SetCoord(2,-0.5); box->SetCoord(3,0.5); -// box->SetCoord(4,coil_length/2.0-delta[2]); box->SetCoord(5,coil_length/2.0+delta[2]); -// CSX.AddPrimitive(box); - - CSPropDumpBox* Edump = NULL; - //E-field dump xz - Edump = new CSPropDumpBox(CSX.GetParameterSet()); - Edump->SetDumpType(0); - Edump->SetDumpMode(0); - Edump->SetName("Et_xz_"); - CSX.AddProperty(Edump); - box = new CSPrimBox(CSX.GetParameterSet(),Edump); - box->SetCoord(0,coil_rad/-1.0-25.0);box->SetCoord(1,coil_rad/1.0+25.0+feed_length); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,-25.0);box->SetCoord(5,coil_length+25.0); - CSX.AddPrimitive(box); - - CSPropDumpBox* Hdump = NULL; - //H-field dump xz - Hdump = new CSPropDumpBox(CSX.GetParameterSet()); - Hdump->SetDumpType(1); - Hdump->SetDumpMode(0); - Hdump->SetName("Ht_xz_"); - CSX.AddProperty(Hdump); - box = new CSPrimBox(CSX.GetParameterSet(),Hdump); - box->SetCoord(0,coil_rad/-1.0-25.0);box->SetCoord(1,coil_rad/1.0+25.0+feed_length); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,-25.0);box->SetCoord(5,coil_length+25.0); - CSX.AddPrimitive(box); - -// -// //E-field dump xy -// Edump = new CSPropDumpBox(CSX.GetParameterSet()); -// Edump->SetDumpType(0); -// Edump->SetName("Et_xy_"); -// CSX.AddProperty(Edump); -// box = new CSPrimBox(CSX.GetParameterSet(),Edump); -// box->SetCoord(0,width/-2.0);box->SetCoord(1,width/2.0); -// box->SetCoord(2,0.0);box->SetCoord(3,height); -// box->SetCoord(4,0.0);box->SetCoord(5,0.0); -// CSX.AddPrimitive(box); - -// //E-field dump 3D -// Edump = new CSPropDumpBox(CSX.GetParameterSet()); -// Edump->SetDumpType(0); -// Edump->SetDumpMode(2); //cell interpolated dump -// Edump->SetName("Et_"); -// CSX.AddProperty(Edump); -// box = new CSPrimBox(CSX.GetParameterSet(),Edump); -// box->SetCoord(0,MSL_width*-1.5);box->SetCoord(1,MSL_width*1.5); -// box->SetCoord(2,0.0);box->SetCoord(3,MSL_height*1.5); -// box->SetCoord(4,length/-2.0);box->SetCoord(5,length/2.0); -// CSX.AddPrimitive(box); -// - //voltage calc - CSPropProbeBox* volt = new CSPropProbeBox(CSX.GetParameterSet()); - volt->SetProbeType(0); - volt->SetName("u1"); - CSX.AddProperty(volt); - box = new CSPrimBox(CSX.GetParameterSet(),volt); - box->SetCoord(0,coil_rad+feed_length);box->SetCoord(1,coil_rad+feed_length); - box->SetCoord(2,0.0);box->SetCoord(3,0.0); - box->SetCoord(4,coil_length);box->SetCoord(5,0.0); - CSX.AddPrimitive(box); - - //current calc - double curr_dist = 2; - CSPropProbeBox* curr = new CSPropProbeBox(CSX.GetParameterSet()); - curr->SetProbeType(1); - curr->SetName("i1"); - CSX.AddProperty(curr); - box = new CSPrimBox(CSX.GetParameterSet(),curr); - box->SetCoord(0,coil_rad+feed_length-curr_dist);box->SetCoord(1,coil_rad+feed_length+curr_dist); - box->SetCoord(2,-curr_dist);box->SetCoord(3,curr_dist); - box->SetCoord(4,coil_length/2.0);box->SetCoord(5,coil_length/2.0); - CSX.AddPrimitive(box); - - CSRectGrid* grid = CSX.GetGrid(); - - double offset[]={coil_rad/-1.0,coil_rad/-1.0,0.0}; - //graded mesh - for (int n=0;n<3;++n) - { - grid->AddDiscLine(n,offset[n] - 25.0); - grid->AddDiscLine(n,offset[n] - 15.0); - grid->AddDiscLine(n,offset[n] - 10.0); - grid->AddDiscLine(n,offset[n] - 5.0); - grid->AddDiscLine(n,offset[n] - 2.0); - grid->AddDiscLine(n,offset[n] - 1.0); - grid->AddDiscLine(n,offset[n] - 0.5); - } - - for (double n=coil_rad/-1.0;n<=coil_rad;n+=delta[0]) - grid->AddDiscLine(0,n); - //feeding mesh - grid->AddDiscLine(0,coil_rad+0.5); - grid->AddDiscLine(0,coil_rad+1); - grid->AddDiscLine(0,coil_rad+2); - grid->AddDiscLine(0,coil_rad+3.5); - grid->AddDiscLine(0,coil_rad+5); - grid->AddDiscLine(0,coil_rad+7); - grid->AddDiscLine(0,coil_rad+8); - grid->AddDiscLine(0,coil_rad+9); - grid->AddDiscLine(0,coil_rad+9.5); - grid->AddDiscLine(0,coil_rad+10); - for (double n=coil_rad/-1.0;n<=coil_rad;n+=delta[1]) - grid->AddDiscLine(1,n); - for (double n=0.0;n<=coil_length;n+=delta[2]) - grid->AddDiscLine(2,n); - - offset[0]=coil_rad+feed_length; - offset[1]=coil_rad; - offset[2]=coil_length; - for (int n=0;n<3;++n) - { - grid->AddDiscLine(n,offset[n] + 0.5); - grid->AddDiscLine(n,offset[n] + 1.0); - grid->AddDiscLine(n,offset[n] + 2.0); - grid->AddDiscLine(n,offset[n] + 3.0); - grid->AddDiscLine(n,offset[n] + 5.0); - grid->AddDiscLine(n,offset[n] + 7.5); - grid->AddDiscLine(n,offset[n] + 10.0); - grid->AddDiscLine(n,offset[n] + 15.0); - grid->AddDiscLine(n,offset[n] + 25.0); - grid->Sort(n); - } - - grid->SetDeltaUnit(1e-3); - - //*************** Create XML file ********************** - TiXmlDocument doc(filename); - doc.InsertEndChild(TiXmlDeclaration("1.0","ISO-8859-1","yes")); - - TiXmlElement openEMS("openEMS"); - - TiXmlElement FDTD_Opts("FDTD"); - FDTD_Opts.SetAttribute("NumberOfTimesteps",maxIter); - FDTD_Opts.SetDoubleAttribute("endCriteria",1e-8); - - TiXmlElement Excite("Excitation"); - Excite.SetAttribute("Type",Excit_Type); - Excite.SetAttribute("f0",f0); - Excite.SetAttribute("fc",fc); - FDTD_Opts.InsertEndChild(Excite); - - TiXmlElement BC("BoundaryCond"); - BC.SetAttribute("xmin",bounds[0]); - BC.SetAttribute("xmax",bounds[1]); - BC.SetAttribute("ymin",bounds[2]); - BC.SetAttribute("ymax",bounds[3]); - BC.SetAttribute("zmin",bounds[4]); - BC.SetAttribute("zmax",bounds[5]); - FDTD_Opts.InsertEndChild(BC); - - openEMS.InsertEndChild(FDTD_Opts); - - if (CSX.Write2XML(&openEMS,true,true)==false) - { - cerr << "writing failed" << endl; - exit(-1); - } - - doc.InsertEndChild(openEMS); - - doc.SaveFile(); -} diff --git a/examples/FDTD_examples.h b/examples/FDTD_examples.h deleted file mode 100644 index 7c5d200..0000000 --- a/examples/FDTD_examples.h +++ /dev/null @@ -1,34 +0,0 @@ -/* -* Copyright (C) 2010 Thorsten Liebig (Thorsten.Liebig@gmx.de) -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program. If not, see . -*/ - -#ifndef FDTD_EXAMPLES_H -#define FDTD_EXAMPLES_H - -#include "ContinuousStructure.h" -#include "tinyxml.h" - -void BuildDipol(const char* filename); - -void BuildPlaneWave(const char* filename); - -void BuildMSL(const char* filename); - -void BuildCoaxial_Cartesian(const char* filename); - -void BuildHelix(const char* filename); - -#endif // FDTD_EXAMPLES_H diff --git a/examples/Helix.xml b/examples/Helix.xml deleted file mode 100644 index 9f9b654..0000000 --- a/examples/Helix.xml +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - -35,-25,-20,-15,-12,-11,-10.5,-10,-9.5,-9,-8.5,-8,-7.5,-7,-6.5,-6,-5.5,-5,-4.5,-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,12,13.5,15,17,18,19,19.5,20,20.5,21,22,23,25,27.5,30,35,45 - -35,-25,-20,-15,-12,-11,-10.5,-10,-9.5,-9,-8.5,-8,-7.5,-7,-6.5,-6,-5.5,-5,-4.5,-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,12,13,15,17.5,20,25,35 - -25,-15,-10,-5,-2,-1,-0.5,0,0.5,1,1.5,2,2.5,3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,12.5,13,13.5,14,14.5,15,15.5,16,16.5,17,17.5,18,18.5,19,19.5,20,20.5,21,21.5,22,22.5,23,23.5,24,24.5,25,25.5,26,26.5,27,27.5,28,28.5,29,29.5,30,30.5,31,31.5,32,32.5,33,33.5,34,34.5,35,35.5,36,36.5,37,37.5,38,38.5,39,39.5,40,40.5,41,41.5,42,42.5,43,43.5,44,44.5,45,45.5,46,46.5,47,47.5,48,48.5,49,49.5,50,50.5,51,52,53,55,57.5,60,65,75 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/MSL.xml b/examples/MSL.xml deleted file mode 100644 index f52d6c3..0000000 --- a/examples/MSL.xml +++ /dev/null @@ -1,79 +0,0 @@ - - - - - - - - - -500,-480,-460,-440,-420,-400,-380,-360,-340,-320,-300,-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400,420,440,460,480,500 - 0,10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200,210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380,390,400,410,420,430,440,450,460,470,480,490,500 - -1000,-980,-960,-940,-920,-900,-880,-860,-840,-820,-800,-780,-760,-740,-720,-700,-680,-660,-640,-620,-600,-580,-560,-540,-520,-500,-480,-460,-440,-420,-400,-380,-360,-340,-320,-300,-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400,420,440,460,480,500,520,540,560,580,600,620,640,660,680,700,720,740,760,780,800,820,840,860,880,900,920,940,960,980,1000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/examples/PlaneWave.xml b/examples/PlaneWave.xml deleted file mode 100644 index 3f5b280..0000000 --- a/examples/PlaneWave.xml +++ /dev/null @@ -1,75 +0,0 @@ - - - - - - - - - -500,-480,-460,-440,-420,-400,-380,-360,-340,-320,-300,-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400,420,440,460,480,500 - -500,-480,-460,-440,-420,-400,-380,-360,-340,-320,-300,-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400,420,440,460,480,500 - -2000,-1980,-1960,-1940,-1920,-1900,-1880,-1860,-1840,-1820,-1800,-1780,-1760,-1740,-1720,-1700,-1680,-1660,-1640,-1620,-1600,-1580,-1560,-1540,-1520,-1500,-1480,-1460,-1440,-1420,-1400,-1380,-1360,-1340,-1320,-1300,-1280,-1260,-1240,-1220,-1200,-1180,-1160,-1140,-1120,-1100,-1080,-1060,-1040,-1020,-1000,-980,-960,-940,-920,-900,-880,-860,-840,-820,-800,-780,-760,-740,-720,-700,-680,-660,-640,-620,-600,-580,-560,-540,-520,-500,-480,-460,-440,-420,-400,-380,-360,-340,-320,-300,-280,-260,-240,-220,-200,-180,-160,-140,-120,-100,-80,-60,-40,-20,0,20,40,60,80,100,120,140,160,180,200,220,240,260,280,300,320,340,360,380,400,420,440,460,480,500,520,540,560,580,600,620,640,660,680,700,720,740,760,780,800,820,840,860,880,900,920,940,960,980,1000,1020,1040,1060,1080,1100,1120,1140,1160,1180,1200,1220,1240,1260,1280,1300,1320,1340,1360,1380,1400,1420,1440,1460,1480,1500,1520,1540,1560,1580,1600,1620,1640,1660,1680,1700,1720,1740,1760,1780,1800,1820,1840,1860,1880,1900,1920,1940,1960,1980,2000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/main.cpp b/main.cpp index 23f9d9b..45c9e13 100644 --- a/main.cpp +++ b/main.cpp @@ -15,16 +15,14 @@ * along with this program. If not, see . */ +#include +#include #include #include #include #include "openems.h" -#include "examples/FDTD_examples.h" - -#define STANDALONE - #ifndef GIT_VERSION #define GIT_VERSION "unknown:compiled@" __DATE__ #endif @@ -35,7 +33,6 @@ int main(int argc, char *argv[]) { openEMS FDTD; -#ifdef STANDALONE if (argc<=1) { cout << " | openEMS version " GIT_VERSION << endl; @@ -53,32 +50,7 @@ int main(int argc, char *argv[]) } } - char* file = argv[1]; -#else - //*************** setup/read geometry ************// - - const char* fileDP="../examples/Dipol.xml"; - BuildDipol(fileDP); - - const char* filePW="../examples/PlaneWave.xml"; - BuildPlaneWave(filePW); - - const char* fileMSL="../examples/MSL.xml"; - BuildMSL(fileMSL); - - const char* fileCoax="../examples/Coax_Cart.xml"; - BuildCoaxial_Cartesian(fileCoax); - - const char* fileHelix="../examples/Helix.xml"; - BuildHelix(fileHelix); - - const char* file=fileHelix; - - FDTD.DebugMaterial(); -// FDTD.DebugOperator(); -#endif - - int EC = FDTD.SetupFDTD(file); + int EC = FDTD.SetupFDTD(argv[1]); if (EC) return EC; FDTD.RunFDTD(); diff --git a/openEMS.pro b/openEMS.pro index 66da7b3..1016be6 100644 --- a/openEMS.pro +++ b/openEMS.pro @@ -41,7 +41,6 @@ SOURCES += main.cpp \ FDTD/processfields.cpp \ FDTD/processfields_td.cpp \ FDTD/processcurrent.cpp \ - examples/FDTD_examples.cpp \ openems.cpp \ FDTD/engine_multithread.cpp \ FDTD/operator_cylinder.cpp \ @@ -64,7 +63,6 @@ HEADERS += tools/ErrorMsg.h \ FDTD/processfields.h \ FDTD/processfields_td.h \ FDTD/processcurrent.h \ - examples/FDTD_examples.h \ openems.h \ FDTD/engine_multithread.h \ FDTD/operator_cylinder.h \