...
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 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 Block |
---|
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 } } } |
Load TE11 mode in a circular waveguide
Code Block |
---|
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 } } } |
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 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
}
}
}
|
Make a non-planar surface absorbing boundary
Code Block |
---|
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
}
}
}
|
LinearSolver options in EigenSolver container
- The first option is that user does not provide anything. The EigenSolver container in the input file looks like:
In this case, Omega3P will use the default option for linear solver for solving shifted linear systemsCode Block EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 }
- The second 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 //this use p-version of multilevel preconditioner. }
of multilevel precondtioner as the solver for shifted linear systems.
- The third option is to use out-of-core sparse direct solver.
Code Block 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. }