Wiki Markup |
---|
{list-pages:direction=siblings} h3. A complete example for a lossless cavity |
...
{code |
} ModelInfo: { File: dds3.ncdf //mesh file. It is the file converted using acdtool BoundaryCondition: { //specify boundary conditions. The numbers here are sideset in cubit Magnetic: 1, 2 //reference surfaces 1 and 2 are symmetric planes Electric: 3 4 //set reference surfaces 3 and 4 to be electric boundary condition Exterior: 6 //surface group 6 (maybe many surfaces) is metal } SurfaceMaterial: { //for each metal (exterior) surface group, list the sigma values ReferenceNumber: 6 Sigma: 5.8e7 } } FiniteElement: { Order: 2 //set the finite element basis function order to be used. CurvedSurfaces: on } EigenSolver: { NumEigenvalues: 1 //want to compute 1 mode FrequencyShift: 10.e9 //the eigenfrequency of the mode should be above 10GHz } CheckPoint: { Action: save Directory: eigens //eigenvectors are saved out into this directory } PostProcess: { Toggle: off //postprocess switch ModeFile: dds //The prefix of the mode filename. } Log: thisrun.log //If you want more printout logged into the file {code} Once Omega3P run is successfully completed, eignvectors are stored in subdirectory <tt>eigens</tt>. User can convert them to mode files to be visualized using paraview. The following is the command to do that: |
...
{code |
} acdtool postprocess eigentomode eigens |
A complete example about a cavity with lossy materials
Code Block |
---|
{code}
h3. A complete example about a cavity with lossy materials
{code}
ModelInfo: {
File: ./pillbox.ncdf
BoundaryCondition: {
Electric: 1,2,3,4
Exterior: 6
}
Material : {
Attribute: 1
Epsilon: 1.0
Mu: 1.0
}
Material : {
Attribute: 2
Epsilon: 1.0
Mu: 1.0
EpsilonImag: -0.2 //lossy material
}
}
FiniteElement: {
Order: 1
Curved Surfaces: off
}
PostProcess: {
Toggle: off
ModeFile: mode
SymmetryFactor: 2
}
EigenSolver: {
NumEigenvalues: 2
FrequencyShift: 5e9
}
|
A complete example with waveguide loaded cavity
Code Block |
---|
{code} h3. A complete example with waveguide loaded cavity {code} ModelInfo: { File: cell1fourth.ncdf BoundaryCondition: { Magnetic: 1,2,3,4 Exterior: 6 Waveguide: 7 //for each number appeared here, it should have at least one Port container later. } } FiniteElement: { Order: 1 Curved Surfaces: on } PostProcess: { Toggle: on ModeFile: test } EigenSolver: { NumEigenvalues: 1 FrequencyShift: 9.e9 } CheckPoint: { Action: save Directory: eigens } Port: { ReferenceNumber: 7 //this number should match surface groups in waveguide boundary condition. Origin: 0.0, 0.0415, 0.0 //the origin of the 2D port in the 3D coordinate system XDirection: 1.0, 0.0, 0.0 //the x axis of the 2D port in the 3D coordinate system YDirection: 0.0, 0.0, -1.0 //the y axis of the 2D port in the 3D coordinate system ESolver: { Type: Analytic //analytic expression is used Mode: { WaveguideType: Rectangular //it is a rectangular waveguide ModeType: TE 1 0 //load the TE10 mode A: 0.028499 //dimension of the waveguide in x B: 0.0134053 //dimension of the waveguide in y } } } {code} h3. Load TEM mode in a coax waveguide |
...
{code |
} Port: { ReferenceNumber: 2 Origin: 0.0, 0.0, 0.011 ESolver: { Type: Analytic Mode: { WaveguideType: Coax ModeType: TEM A: 0.0011 //smaller radius B: 0.0033 //larger radius } } } {code} h3. Load TE11 mode in a circular waveguide |
...
{code |
} Port: { ReferenceNumber: 2 Origin: 0.0, 0.0, 0.1 XDirection: 1.0, 0.0, 0.0 YDirection: 0.0, 1.0, 0.0 ESolver: { Type: Analytic Mode: { Waveguide type: Circular Mode type: TE 1 1 A: 0.03 } } } {code} h3. Load two TE modes in the same rectangular waveguide |
...
{code |
}
Port: {
Reference number: 9 // FPC
Origin: 0.0, 0.198907, -0.4479152585
XDirection: -1.0, 0.0, 0.0
YDirection: 0.0, 0.0, 1.0
ESolver: {
Type: Analytic
Mode: {
WaveguideType: Rectangular
ModeType: TE 1 1
A: 0.1348935946
B: 0.024973714999999970
}
}
}
Port: {
Reference number: 9 // FPC
Origin: 0.0, 0.198907, -0.4479152585
XDirection: -1.0, 0.0, 0.0
YDirection: 0.0, 0.0, 1.0
ESolver: {
Type: Analytic
Mode: {
WaveguideType: Rectangular
ModeType: TE 2 0
A: 0.1348935946
B: 0.024973714999999970
}
}
}
|
...
{code} h3. Make a non-planar surface absorbing boundary |
...
{code |
} Port: { ReferenceNumber: 5 //reference surface ID Origin: 0.0, 0.0, 0.0 //not used XDirection: 1.0, 0.0, 0.0 //not used YDirection: 0.0, 1.0, 0.0 //not used ESolver: { Type: Analytic Mode:{ Mode number: 1 Waveguide type: ABC Mode type: ABC } } } {code} h3. LinearSolver options in EigenSolver container |
...
* The first option is that user does not provide anything. The EigenSolver container in the input file looks like: |
...
{code |
...
} EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 } {code} |
...
In this case, Omega3P will use the default option for linear solver for solving shifted linear systems |
...
* The second option is to use Krylov subspace method with different preconditioner. |
...
{code |
...
} EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Preconditioner: MP //this use p-version of multilevel preconditioner. } {code} |
...
The code will choose either CG (real matrices) or GMRES (complex matrices) and the p-version |
...
of multilevel precondtioner as the solver for shifted linear systems. |
...
* The third option is to use out-of-core sparse direct solver. |
...
{code |
...
} EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Memory: 1000 //if the memory usage of the matrix factor in any process is larger than 1000MBytes, //switch to use out-of-core solver. } {code} |