Code Block |
---|
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
|
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 Block |
---|
acdtool postprocess eigentomode eigens
|
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: {
Toggle: off
ModeFile: mode
SymmetryFactor: 2
}
EigenSolver: {
NumEigenvalues: 2
FrequencyShift: 5e9
}
|
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
}
}
}
|
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
}
}
}
|
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
}
}
}
|
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
}
}
}
|
- The first option is that user does not provide anything. The EigenSolver container in the input file looks like:
Code Block |
---|
EigenSolver: {
NumEigenvalues: 1
FrequencyShift: 10.e9
}
|
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 Block |
---|
EigenSolver: {
NumEigenvalues: 1
FrequencyShift: 10.e9
Preconditioner: MP //this use p-version of multilevel preconditioner.
}
|
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 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.
}
|