removed & cleanup old c-examples
This commit is contained in:
parent
e237216f56
commit
e3a12c959d
@ -1,97 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
|
||||
<openEMS>
|
||||
<FDTD NumberOfTimesteps="1000">
|
||||
<Excitation Type="0" f0="1000000000" fc="1000000000" />
|
||||
<BoundaryCond xmin="0" xmax="0" ymin="0" ymax="0" zmin="0" zmax="0" />
|
||||
</FDTD>
|
||||
<ContinuousStructure>
|
||||
<RectilinearGrid DeltaUnit="0.001000">
|
||||
<XLines Qty="93">-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</XLines>
|
||||
<YLines Qty="93">-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</YLines>
|
||||
<ZLines Qty="201">-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</ZLines>
|
||||
</RectilinearGrid>
|
||||
<ParameterSet />
|
||||
<Properties>
|
||||
<Material Isotropy="1" ID="0" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.875000e-10" Sigma="2.661107e-05" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1300,4)" Sigma="term:pow(abs(z)-1300,4)" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1300,4)" Sigma="term:pow(abs(z)-1300,4)" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1300,4)" Sigma="term:pow(abs(z)-1300,4)" />
|
||||
<Primitives>
|
||||
<Box ID="0" Priority="10">
|
||||
<P1 X="-2.300000e+02" Y="-2.300000e+02" Z="1.300000e+03" />
|
||||
<P2 X="2.300000e+02" Y="2.300000e+02" Z="1.500000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Electrode Number="0" Delay="0.000000e+00" ID="1" Name="">
|
||||
<Excitation Type="0" Excit_X="1.000000e+00" Excit_Y="1.000000e+00" Excit_Z="0.000000e+00" />
|
||||
<Weight X="term:x/pow(rho,2)" Y="term:y/pow(rho,2)" Z="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="1" Priority="5">
|
||||
<P1 X="-2.300000e+02" Y="-2.300000e+02" Z="-5.000000e+02" />
|
||||
<P2 X="2.300000e+02" Y="2.300000e+02" Z="-5.000000e+02" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Electrode>
|
||||
<DumpBox DumpType="0" DumpMode="0" ID="2" Name="Et_">
|
||||
<Primitives>
|
||||
<Box ID="2" Priority="0">
|
||||
<P1 X="-2.300000e+02" Y="0.000000e+00" Z="-5.000000e+02" />
|
||||
<P2 X="2.300000e+02" Y="0.000000e+00" Z="1.500000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
<ProbeBox Number="0" Type="0" ID="3" Name="u1">
|
||||
<Primitives>
|
||||
<Box ID="3" Priority="0">
|
||||
<P1 X="1.000000e+02" Y="0.000000e+00" Z="0.000000e+00" />
|
||||
<P2 X="2.300000e+02" Y="0.000000e+00" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
<ProbeBox Number="0" Type="1" ID="4" Name="i1">
|
||||
<Primitives>
|
||||
<Box ID="4" Priority="0">
|
||||
<P1 X="-1.500000e+02" Y="-1.500000e+02" Z="0.000000e+00" />
|
||||
<P2 X="1.500000e+02" Y="1.500000e+02" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
<Material Isotropy="1" ID="5" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="5.600000e+10" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Cylinder ID="5" Priority="100" Radius="1.000000e+02">
|
||||
<P0 X="0.000000e+00" Y="0.000000e+00" Z="-5.000000e+02" />
|
||||
<P1 X="0.000000e+00" Y="0.000000e+00" Z="1.500000e+03" />
|
||||
</Cylinder>
|
||||
<Box ID="6" Priority="1">
|
||||
<P1 X="-2.300000e+02" Y="-2.300000e+02" Z="-5.000000e+02" />
|
||||
<P2 X="2.300000e+02" Y="2.300000e+02" Z="1.500000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Material Isotropy="1" ID="6" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Cylinder ID="7" Priority="9" Radius="2.300000e+02">
|
||||
<P0 X="0.000000e+00" Y="0.000000e+00" Z="-5.000000e+02" />
|
||||
<P1 X="0.000000e+00" Y="0.000000e+00" Z="1.500000e+03" />
|
||||
</Cylinder>
|
||||
</Primitives>
|
||||
</Material>
|
||||
</Properties>
|
||||
</ContinuousStructure>
|
||||
</openEMS>
|
@ -1,41 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
|
||||
<openEMS>
|
||||
<FDTD NumberOfTimesteps="1000">
|
||||
<Excitation Type="0" f0="500000000" fc="500000000" />
|
||||
<BoundaryCond xmin="1" xmax="1" ymin="0" ymax="0" zmin="0" zmax="0" />
|
||||
</FDTD>
|
||||
<ContinuousStructure>
|
||||
<RectilinearGrid DeltaUnit="0.001000">
|
||||
<XLines Qty="100">-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</XLines>
|
||||
<YLines Qty="100">-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</YLines>
|
||||
<ZLines Qty="100">-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</ZLines>
|
||||
</RectilinearGrid>
|
||||
<ParameterSet />
|
||||
<Properties>
|
||||
<Material Isotropy="1" ID="0" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e-03" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="0" Priority="0">
|
||||
<P1 X="-1.000000e+03" Y="-1.000000e+03" Z="-1.000000e+03" />
|
||||
<P2 X="1.000000e+03" Y="1.000000e+03" Z="1.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Electrode Number="0" Delay="0.000000e+00" ID="1" Name="">
|
||||
<Excitation Type="1" Excit_X="0.000000e+00" Excit_Y="1.000000e+00" Excit_Z="0.000000e+00" />
|
||||
<Weight X="1.000000e+00" Y="1.000000e+00" Z="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="1" Priority="0">
|
||||
<P1 X="-1.000000e+01" Y="-7.500000e+01" Z="-1.000000e+01" />
|
||||
<P2 X="1.000000e+01" Y="7.500000e+01" Z="1.000000e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Electrode>
|
||||
</Properties>
|
||||
</ContinuousStructure>
|
||||
</openEMS>
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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;n<coil_turns;++n)
|
||||
{
|
||||
for (int m=0;m<=coil_res;++m)
|
||||
{
|
||||
p[0] = coil_rad * cos(2*PI*dt*m);
|
||||
p[1] = coil_rad * sin(2*PI*dt*m);
|
||||
p[2] = height + coil_length/(double)coil_turns * dt*m;
|
||||
// cerr << p[0] << " " << p[1] << " " << p[2] << " " << endl;
|
||||
curve->AddPoint(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))&(r<rad_coil+rad_wire)&(sqrt(pow(x-r*cos(2*pi*z*turns/coil_length),2)+pow(y-r*sin(2*pi*z*turns/coil_length),2))<(2*rad_wire))&(z>0)&(z<coil_length)");
|
||||
// CSX.AddPrimitive(helix);
|
||||
|
||||
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,-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();
|
||||
}
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#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
|
@ -1,190 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
|
||||
<openEMS>
|
||||
<FDTD NumberOfTimesteps="500000" endCriteria="0.000000">
|
||||
<Excitation Type="0" f0="500000000" fc="500000000" />
|
||||
<BoundaryCond xmin="1" xmax="1" ymin="1" ymax="1" zmin="1" zmax="1" />
|
||||
</FDTD>
|
||||
<ContinuousStructure>
|
||||
<RectilinearGrid DeltaUnit="0.001000">
|
||||
<XLines Qty="67">-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</XLines>
|
||||
<YLines Qty="57">-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</YLines>
|
||||
<ZLines Qty="117">-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</ZLines>
|
||||
</RectilinearGrid>
|
||||
<ParameterSet>
|
||||
<Parameter Type="Const" name="rad_coil" Sweep="1" value="10.000000" />
|
||||
<Parameter Type="Const" name="rad_wire" Sweep="1" value="0.667558" />
|
||||
<Parameter Type="Const" name="turns" Sweep="1" value="8.000000" />
|
||||
<Parameter Type="Const" name="coil_length" Sweep="1" value="50.000000" />
|
||||
</ParameterSet>
|
||||
<Properties>
|
||||
<Material Isotropy="1" ID="0" Name="copper">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="5.600000e+07" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Wire ID="0" Priority="0" WireRadius="term:rad_wire">
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="0.000000e+00" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="6.250000e-01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="1.250000e+00" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="1.875000e+00" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="2.500000e+00" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="3.125000e+00" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="3.750000e+00" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="4.375000e+00" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="5.000000e+00" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="5.625000e+00" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="6.250000e+00" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="6.250000e+00" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="6.875000e+00" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="7.500000e+00" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="8.125000e+00" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="8.750000e+00" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="9.375000e+00" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="1.000000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="1.062500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="1.125000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="1.187500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="1.250000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="1.250000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="1.312500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="1.375000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="1.437500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="1.500000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="1.562500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="1.625000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="1.687500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="1.750000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="1.812500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="1.875000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="1.875000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="1.937500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="2.000000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="2.062500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="2.125000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="2.187500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="2.250000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="2.312500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="2.375000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="2.437500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="2.500000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="2.500000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="2.562500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="2.625000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="2.687500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="2.750000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="2.812500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="2.875000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="2.937500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="3.000000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="3.062500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="3.125000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="3.125000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="3.187500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="3.250000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="3.312500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="3.375000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="3.437500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="3.500000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="3.562500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="3.625000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="3.687500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="3.750000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="3.750000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="3.812500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="3.875000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="3.937500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="4.000000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="4.062500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="4.125000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="4.187500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="4.250000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="4.312500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="4.375000e+01" />
|
||||
<Vertex X="1.000000e+01" Y="0.000000e+00" Z="4.375000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="5.877853e+00" Z="4.437500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="9.510565e+00" Z="4.500000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="9.510565e+00" Z="4.562500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="5.877853e+00" Z="4.625000e+01" />
|
||||
<Vertex X="-1.000000e+01" Y="1.224606e-15" Z="4.687500e+01" />
|
||||
<Vertex X="-8.090170e+00" Y="-5.877853e+00" Z="4.750000e+01" />
|
||||
<Vertex X="-3.090170e+00" Y="-9.510565e+00" Z="4.812500e+01" />
|
||||
<Vertex X="3.090170e+00" Y="-9.510565e+00" Z="4.875000e+01" />
|
||||
<Vertex X="8.090170e+00" Y="-5.877853e+00" Z="4.937500e+01" />
|
||||
<Vertex X="1.000000e+01" Y="-2.449213e-15" Z="5.000000e+01" />
|
||||
</Wire>
|
||||
<Box ID="1" Priority="0">
|
||||
<P1 X="1.000000e+01" Y="-5.000000e-01" Z="-5.000000e-01" />
|
||||
<P2 X="2.000000e+01" Y="5.000000e-01" Z="5.000000e-01" />
|
||||
</Box>
|
||||
<Box ID="2" Priority="0">
|
||||
<P1 X="1.000000e+01" Y="-5.000000e-01" Z="4.950000e+01" />
|
||||
<P2 X="2.000000e+01" Y="5.000000e-01" Z="5.050000e+01" />
|
||||
</Box>
|
||||
<Box ID="3" Priority="0">
|
||||
<P1 X="1.950000e+01" Y="-5.000000e-01" Z="0.000000e+00" />
|
||||
<P2 X="2.050000e+01" Y="5.000000e-01" Z="5.000000e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Material Isotropy="0" ID="1" Name="resist">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="3.333333e+02" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="4" Priority="100">
|
||||
<P1 X="1.950000e+01" Y="-5.000000e-01" Z="1.666667e+01" />
|
||||
<P2 X="2.050000e+01" Y="5.000000e-01" Z="3.333333e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Electrode Number="0" Delay="0.000000e+00" ID="2" Name="">
|
||||
<Excitation Type="0" Excit_X="0.000000e+00" Excit_Y="0.000000e+00" Excit_Z="1.000000e+00" />
|
||||
<Weight X="1.000000e+00" Y="1.000000e+00" Z="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="5" Priority="0">
|
||||
<P1 X="2.050000e+01" Y="-5.000000e-01" Z="1.666667e+01" />
|
||||
<P2 X="1.950000e+01" Y="5.000000e-01" Z="3.333333e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Electrode>
|
||||
<DumpBox DumpType="0" DumpMode="0" ID="3" Name="Et_xz_">
|
||||
<Primitives>
|
||||
<Box ID="6" Priority="0">
|
||||
<P1 X="-3.500000e+01" Y="0.000000e+00" Z="-2.500000e+01" />
|
||||
<P2 X="4.500000e+01" Y="0.000000e+00" Z="7.500000e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
<DumpBox DumpType="1" DumpMode="0" ID="4" Name="Ht_xz_">
|
||||
<Primitives>
|
||||
<Box ID="7" Priority="0">
|
||||
<P1 X="-3.500000e+01" Y="0.000000e+00" Z="-2.500000e+01" />
|
||||
<P2 X="4.500000e+01" Y="0.000000e+00" Z="7.500000e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
<ProbeBox Number="0" Type="0" ID="5" Name="u1">
|
||||
<Primitives>
|
||||
<Box ID="8" Priority="0">
|
||||
<P1 X="2.000000e+01" Y="0.000000e+00" Z="5.000000e+01" />
|
||||
<P2 X="2.000000e+01" Y="0.000000e+00" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
<ProbeBox Number="0" Type="1" ID="6" Name="i1">
|
||||
<Primitives>
|
||||
<Box ID="9" Priority="0">
|
||||
<P1 X="1.800000e+01" Y="-2.000000e+00" Z="2.500000e+01" />
|
||||
<P2 X="2.200000e+01" Y="2.000000e+00" Z="2.500000e+01" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
</Properties>
|
||||
</ContinuousStructure>
|
||||
</openEMS>
|
@ -1,79 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
|
||||
<openEMS>
|
||||
<FDTD NumberOfTimesteps="10000">
|
||||
<Excitation Type="0" f0="500000000" fc="500000000" />
|
||||
<BoundaryCond xmin="1" xmax="1" ymin="0" ymax="0" zmin="0" zmax="0" />
|
||||
</FDTD>
|
||||
<ContinuousStructure>
|
||||
<RectilinearGrid DeltaUnit="0.001000">
|
||||
<XLines Qty="51">-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</XLines>
|
||||
<YLines Qty="51">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</YLines>
|
||||
<ZLines Qty="101">-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</ZLines>
|
||||
</RectilinearGrid>
|
||||
<ParameterSet />
|
||||
<Properties>
|
||||
<Material Isotropy="1" ID="0" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.875000e-10" Sigma="2.661107e-05" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-800,4)" Sigma="term:pow(abs(z)-800,4)" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-800,4)" Sigma="term:pow(abs(z)-800,4)" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-800,4)" Sigma="term:pow(abs(z)-800,4)" />
|
||||
<Primitives>
|
||||
<Box ID="0" Priority="0">
|
||||
<P1 X="-5.000000e+02" Y="0.000000e+00" Z="8.000000e+02" />
|
||||
<P2 X="5.000000e+02" Y="5.000000e+02" Z="1.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Material Isotropy="1" ID="1" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="5.600000e+07" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="1" Priority="100">
|
||||
<P1 X="-4.000000e+01" Y="5.000000e+01" Z="-1.000000e+03" />
|
||||
<P2 X="4.000000e+01" Y="6.000000e+01" Z="1.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Electrode Number="0" Delay="0.000000e+00" ID="2" Name="">
|
||||
<Excitation Type="0" Excit_X="0.000000e+00" Excit_Y="-1.000000e+00" Excit_Z="0.000000e+00" />
|
||||
<Weight X="1.000000e+00" Y="1.000000e+00" Z="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="2" Priority="0">
|
||||
<P1 X="-4.000000e+01" Y="0.000000e+00" Z="-1.000000e+03" />
|
||||
<P2 X="4.000000e+01" Y="5.000000e+01" Z="-1.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Electrode>
|
||||
<DumpBox DumpType="0" DumpMode="2" ID="3" Name="Et_">
|
||||
<Primitives>
|
||||
<Box ID="3" Priority="0">
|
||||
<P1 X="-1.200000e+02" Y="0.000000e+00" Z="-1.000000e+03" />
|
||||
<P2 X="1.200000e+02" Y="7.500000e+01" Z="1.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
<ProbeBox Number="0" Type="0" ID="4" Name="u1">
|
||||
<Primitives>
|
||||
<Box ID="4" Priority="0">
|
||||
<P1 X="0.000000e+00" Y="5.000000e+01" Z="0.000000e+00" />
|
||||
<P2 X="0.000000e+00" Y="0.000000e+00" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
<ProbeBox Number="0" Type="1" ID="5" Name="i1">
|
||||
<Primitives>
|
||||
<Box ID="5" Priority="0">
|
||||
<P1 X="-1.200000e+02" Y="2.500000e+01" Z="0.000000e+00" />
|
||||
<P2 X="1.200000e+02" Y="7.500000e+01" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</ProbeBox>
|
||||
</Properties>
|
||||
</ContinuousStructure>
|
||||
</openEMS>
|
@ -1,75 +0,0 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?>
|
||||
<openEMS>
|
||||
<FDTD NumberOfTimesteps="10000">
|
||||
<Excitation Type="0" f0="500000000" fc="500000000" />
|
||||
<BoundaryCond xmin="1" xmax="1" ymin="0" ymax="0" zmin="0" zmax="0" />
|
||||
</FDTD>
|
||||
<ContinuousStructure>
|
||||
<RectilinearGrid DeltaUnit="0.001000">
|
||||
<XLines Qty="51">-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</XLines>
|
||||
<YLines Qty="51">-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</YLines>
|
||||
<ZLines Qty="201">-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</ZLines>
|
||||
</RectilinearGrid>
|
||||
<ParameterSet />
|
||||
<Properties>
|
||||
<Material Isotropy="1" ID="0" Name="">
|
||||
<Property Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.875000e-10" Sigma="2.661107e-05" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1800,4)" Sigma="term:pow(abs(z)-1800,4)" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1800,4)" Sigma="term:pow(abs(z)-1800,4)" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="term:pow(abs(z)-1800,4)" Sigma="term:pow(abs(z)-1800,4)" />
|
||||
<Primitives>
|
||||
<Box ID="0" Priority="0">
|
||||
<P1 X="-5.000000e+02" Y="-5.000000e+02" Z="1.800000e+03" />
|
||||
<P2 X="5.000000e+02" Y="5.000000e+02" Z="2.000000e+03" />
|
||||
</Box>
|
||||
<Box ID="1" Priority="0">
|
||||
<P1 X="-5.000000e+02" Y="-5.000000e+02" Z="-1.800000e+03" />
|
||||
<P2 X="5.000000e+02" Y="5.000000e+02" Z="-2.000000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Material Isotropy="1" ID="1" Name="">
|
||||
<Property Epsilon="2.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<PropertyZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="0.000000e+00" Sigma="0.000000e+00" />
|
||||
<WeightX Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightY Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<WeightZ Epsilon="1.000000e+00" Mue="1.000000e+00" Kappa="1.000000e+00" Sigma="1.000000e+00" />
|
||||
<Primitives>
|
||||
<CylindricalShell ID="2" Priority="0" Radius="1.000000e+03" ShellWidth="2.000000e+02">
|
||||
<P0 X="0.000000e+00" Y="-5.000000e+02" Z="0.000000e+00" />
|
||||
<P1 X="0.000000e+00" Y="5.000000e+02" Z="0.000000e+00" />
|
||||
</CylindricalShell>
|
||||
</Primitives>
|
||||
</Material>
|
||||
<Electrode Number="0" Delay="0.000000e+00" ID="2" Name="">
|
||||
<Excitation Type="0" Excit_X="0.000000e+00" Excit_Y="1.000000e+00" Excit_Z="0.000000e+00" />
|
||||
<Weight X="1.000000e+00" Y="1.000000e+00" Z="1.000000e+00" />
|
||||
<Primitives>
|
||||
<Box ID="3" Priority="0">
|
||||
<P1 X="-5.000000e+02" Y="-5.000000e+02" Z="0.000000e+00" />
|
||||
<P2 X="5.000000e+02" Y="5.000000e+02" Z="0.000000e+00" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</Electrode>
|
||||
<DumpBox DumpType="0" DumpMode="0" ID="3" Name="Et_">
|
||||
<Primitives>
|
||||
<Box ID="4" Priority="0">
|
||||
<P1 X="-3.333333e+02" Y="0.000000e+00" Z="-1.800000e+03" />
|
||||
<P2 X="3.333333e+02" Y="0.000000e+00" Z="1.800000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
<DumpBox DumpType="1" DumpMode="0" ID="4" Name="Ht_">
|
||||
<Primitives>
|
||||
<Box ID="5" Priority="0">
|
||||
<P1 X="-3.333333e+02" Y="0.000000e+00" Z="-1.800000e+03" />
|
||||
<P2 X="3.333333e+02" Y="0.000000e+00" Z="1.800000e+03" />
|
||||
</Box>
|
||||
</Primitives>
|
||||
</DumpBox>
|
||||
</Properties>
|
||||
</ContinuousStructure>
|
||||
</openEMS>
|
34
main.cpp
34
main.cpp
@ -15,16 +15,14 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
|
||||
#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();
|
||||
|
||||
|
@ -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 \
|
||||
|
Loading…
Reference in New Issue
Block a user