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 } |
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:
acdtool postprocess eigentomode eigens |
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 } |
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 } |
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. Absorbing and Waveguide have the same effects. Omega3P internally will figure out which BC to use. } } 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 } } } |
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 } } } |
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 } } } |
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 } } } |
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 } } } |
EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Tolerance: 1.e-8 } |
EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Preconditioner: MUMPSFLOAT //use the float version. memory usage reduced into half. } |
EigenSolver: { NumEigenvalues: 1 FrequencyShift: 10.e9 Preconditioner: MP //this use p-version of multilevel preconditioner. } |
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. } |
There are two ways to do so. Each way has its advantage and disadvantage.
ModelInfo: { File: .dds3.ncdf BoundaryCondition: { Magnetic: 1, 2, 3, 4 Exterior: 6 // sideset 6 is defined as Exterior BC. } SurfaceMaterial: { // have a separate for each number in Exterior BC ReferenceNumber: 6 //the corresponding sideset in Exterior BC Sigma: 5.8e7 //electrical conductivity of the material } } |
Mode : { TotalEnergy : 4.4270939088102e-12 QualityFactor : 6478.5096350252 File : ./dds.l0.1.144469E+10.m0 PowerLoss : 4.9139118623939e-05 Frequency : 11444685657.626 } |
ModelInfo: { File: dds3.ncdf BoundaryCondition: { HFormulation: 1 Magnetic: 1, 2, 3, 4 Impedance: 6 } SurfaceMaterial: { ReferenceNumber: 6 Sigma: 5.8e7 } } |
Mode = { TotalEnergy = { 6.2827077634198e-07, 0 }, ExternalQ = 6579.1486638005, QualityFactor = inf, File = './dds.l0.R1.144619E+10I8.698837E+05.m0', PowerLoss = 0, Frequency = { 11446188331.641, 869883.69746227 } } |
COMMIT MODE: 0 FREQ = (11446188331.64141,869883.6974622669) k = (239.8943683519209,0.01823141417003215) Q = 6579.148663800495 |
Both methods should give you converged Q results if mesh is dense enough.