...
Code Block |
---|
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: {
SymmetryFactor: 2
}
EigenSolver: {
NumEigenvalues: 2
FrequencyShift: 5e9
}
|
...
Code Block |
---|
ModelInfo: { File: c026ds-pbc.ncdf BoundaryCondition: { Magnetic: 1 2 Periodic_M: 3 //master surface Periodic_S: 4 //slave surface, the mesh should be exactly same as those on the master surface Exterior: 6 Theta: -150 //phase } } FiniteElement: { Order: 2 CurvedSurfaces: on ScalarPotential: 1 //use A-V formulation } PostProcess: { SymmetryFactor: 8 } EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10e9 } |
...
Code Block |
---|
ModelInfo: { File: cell1fourth.ncdf BoundaryCondition: { Magnetic: 1,2,3,4 Exterior: 6 Waveguide: 7 //for each number appeared here, it should have at least//Automatic onenumerical Portwaveguide containerport later. solution will be generated per default //Absorbing: 7 //AbsorbingFirst-order andabsorbing Waveguide have the same effectsboundary condition. Omega3P internallyDefault willcutoff figureis out0 } } FiniteElement: { Order: //which BC to use.1 } } FiniteElement: { Order: 1 Curved Curved Surfaces: on } EigenSolver: { NumEigenvalues: 1 FrequencyShift: 9.e9 } Port: { ReferenceNumber: 7 //this number should match surface groups in waveguide boundary condition. NumberOfModes: 3 NumberOfModes: 1 } |
Analytic Ports (for polarization)
Omega3p normally uses a numerical solution for each port but if you need to specify the polarization of the waveguide you can give an analytic solution instead.
From the last example we could have used:
// this whole 'Port' container is only needed if you want to load more than 1 mode on a port
//CutoffFrequency: 5.6e9 // this is only for Absorbing boundary conditions specified above. Can be used to have the same cutoff as another waveguide mode for faster solution
}
|
Analytic Ports (for polarization)
Omega3p normally uses a numerical solution for each port but if you need to specify the polarization of the waveguide you can give an analytic solution instead.
From the last example we could have used:
Code Block |
---|
Port: {
|
Code Block |
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 ReferenceNumber: 7 //this number should match surface groups in ModeType:waveguide TEboundary 1condition. 0 Origin: 0.0, 0.0415, 0.0 //loadthe theorigin TE10of mode the 2D port in the 3D coordinate system XDirection: 1.0, 0.0, 0.0 A: 0.028499 //the x axis of the 2D port in the 3D coordinate system YDirection: 0.0, 0.0, -1.0 //dimension of the waveguidey inaxis x of the 2D port in the 3D coordinate system ESolver: { B: 0.0134053 Type: Analytic //dimensionanalytic ofexpression the waveguide in yis used Mode: }{ } } |
Load TEM mode in a coax waveguide
Code Block |
---|
Port: { ReferenceNumberWaveguideType: Rectangular 2 //it is a rectangular Origin:waveguide 0.0, 0.0, 0.011 ESolver: { ModeType: TE 1 0 Type: Analytic //load the Mode:TE10 {mode WaveguideType: Coax A: 0.028499 ModeType: TEM//dimension of the waveguide in x AB: 0.00110134053 //smaller radius //dimension B: 0.0033 //larger radiusof the waveguide in y } } } |
Load
...
TEM mode in a
...
coax waveguide
Code Block |
---|
Port: { ReferenceNumber: 2 Origin: 0.0, 0.0, 0.1011 XDirectionESolver: 1.0,{ 0.0, 0.0 YDirection: 0.0, 1.0, 0.0Type: Analytic ESolver: { Mode: { Type: Analytic ModeWaveguideType: {Coax Waveguide typeModeType: CircularTEM Mode type: TE 1 1A: 0.0011 //smaller radius AB: 0.030033 //larger radius } } } |
Load
...
TE11 mode in a circular waveguide
Code Block |
---|
Port: { Reference numberReferenceNumber: 92 // FPC Origin: 0.0, 0.1989070, -0.44791525851 XDirection: -1.0, 0.0, 0.0 YDirection: 0.0, 0 1.0, 1 0.0 ESolver: { Type: Analytic Mode: { WaveguideType: Rectangular Waveguide type: Circular ModeType: TE 1 1 Mode type: TE 1 1 A: 0.1348935946 BA: 0.02497371499999997003 } } } |
Load two TE modes in the same rectangular waveguide
Code Block |
---|
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 21 01 A: 0.1348935946 B: 0.024973714999999970 } } } |
Make a non-planar surface absorbing boundary
Code Block |
---|
Port: { ReferenceNumber: 5 Reference number: 9 //reference surface IDFPC Origin: Origin: 0.0, 0.0198907, -0.0 4479152585 //not used XDirection: -1.0, 0.0, 0.0 //not used YDirection: 0.0, 10.0, 01.0 //not used ESolver: { Type: Analytic Mode:{ Type: Analytic Mode number: 1 Mode: { Waveguide typeWaveguideType: ABCRectangular Mode typeModeType: ABC TE 2 }0 } } |
LinearSolver options in EigenSolver container
...
...
|
...
|
...
A: |
...
0. |
...
1348935946 |
...
...
|
...
|
...
B: |
...
0. |
...
024973714999999970 |
...
...
|
...
|
...
} |
...
|
...
|
...
|
...
|
...
|
...
|
...
} } |
Code Block |
---|
LinearSolver options in EigenSolver container |
- The third first option is to use Krylov subspace method with different preconditioner. that user does not provide anything. The EigenSolver container in the input file looks like:
The code will choose either CG (real matrices) or GMRES (complex matrices) and the p-versionCode Block EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Preconditioner: MP //this use p-version of multilevel preconditioner.Tolerance: 1.e-8 }
of multilevel precondtioner as the solver for shifted linear systems. In this case, Omega3P will use the default option for linear solver for solving shifted linear systems
- The second The fourth option is to use out-of-core float version of the sparse direct solver (an experimental feature).
Code Block EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 MemoryPreconditioner: 1000 MUMPSFLOAT //ifuse the float version. memory usage of the matrix factor in any process is larger than 1000MBytes reduced into half. }
- The third option is to use Krylov subspace method with different preconditioner.
The code will choose either CG (real matrices) or GMRES (complex matrices) and the p-versionCode Block EigenSolver: { NumEigenvalues: 1, FrequencyShift: 10.e9 Preconditioner: MP //switchthis to use outp-version of-core multilevel solverpreconditioner. }
of multilevel precondtioner as the solver for shifted linear systems.
FAQ
How to calculate Wallloss Quality Factor?
...