Skip to end of metadata
Go to start of metadata
Table of Contents

Introduction

Omega3P is a parallel finite-element electrogmagnetic code for high-fidelity modeling of cavities. It calculates the resonant frequencies and other rf parameters of a cavity, as well as damping effects due to external couplings. It uses Nedelec-type hierarchical vector basis up to 6th order with quadratic (10-points) tetrahedral elements for improved solution accuracy.

Mathematical Modeling

Lossless cavities

Maxwell's equations in the frequency domain for a perfectly conducting cavity can be written as the following PDE,

Unknown macro: {latex}

\begin

Unknown macro: {eqnarray*}

\nabla \times \left(\frac

Unknown macro: {1}
Unknown macro: {mu}

\nabla \times \vec

Unknown macro: {mathbf E} \right) - k^2 \epsilon \vec

& = 0 & on \quad \Omega
\vec

Unknown macro: {mathbf n}

\times \vec

Unknown macro: {mathbf E}

& = 0 & on \quad \Gamma_

Unknown macro: {E}


\vec

\times \left( \frac

Unknown macro: {mu}

\nabla \times \vec

Unknown macro: {mathbf E}

\right) & = 0 & on \quad \Gamma_

Unknown macro: {M}


\end

We use Nedelec-type vector basis functions to discretize the electric field:

Unknown macro: {latex}

[\vec

Unknown macro: {mathbf E}

=\sum_i x_i \vec

Unknown macro: {mathbf N}

_i]

We obtain the following generalized eigenvalue problem:

Unknown macro: {latex}

\begin

Unknown macro: {eqnarray*}
Unknown macro: {mathbf Kx}

= k^2

Unknown macro: {mathbf Mx}

\quad where &

Unknown macro: {mathbf K}

_

Unknown macro: {ij}

= \int_

Unknown macro: {Omega}

\left( \nabla \times \vec

Unknown macro: {mathbf N}

_i \right) \cdot \frac

Unknown macro: {1}
Unknown macro: {mu}

\left( \nabla \times \vec

_j \right) d\Omega &

Unknown macro: {mathbf M}

_

= \int_

Unknown macro: {Omega}

\vec

Unknown macro: {mathbf N} _i \cdot \epsilon \vec

_j d\Omega &
\end

The matrix K is real symmetric while M is real symmetric positive definite. If there are lossy materials in the cavity, the matrix M and/or K will be complex.

Waveguide loaded cavities

For modeling waveguide-loaded cavities, we use either the absorbing boundary condition (ABC) or the waveguide boundary condition (WBC). The following picture illustrates a cavity with 3 waveguides, and each of them is modeled with ABC.

The discretized system is a complex nonlinear eigenvalue problem,

Unknown macro: {latex}

[

Unknown macro: {mathbf Kx}

+ i \sum_j \sqrt{k^2-k^2_{cj}}

Unknown macro: {mathbf W}

_j

Unknown macro: {mathbf x}

= k^2

Unknown macro: {mathbf Mx}

]

where the damping matrix W is

Unknown macro: {latex}

[
(

Unknown macro: {mathbf W}

j)

Unknown macro: {mn}

= \int_

Unknown macro: {Gamma}

\left( \vec

Unknown macro: {mathbf n}

\times \vec

Unknown macro: {mathbf N}

_m \right) \cdot \left( \vec

\times \vec

Unknown macro: {mathbf N}

_n \right) d\Gamma
]

The following picture illustrates a cavity with waveguides, which are modeled with WBC.

The corresponding discretized system becomes a complex nonlienar eigenvalue problem,

Unknown macro: {latex}

[

Unknown macro: {mathbf Kx}

+ i \sum_

Unknown macro: {m,n}

\sqrt{k^2-(k^

Unknown macro: {TE}

_

Unknown macro: {mn}

)^2}

Unknown macro: {mathbf W}

^

_

Unknown macro: {mn}

Unknown macro: {mathbf x}

+ i \sum_

\frac

Unknown macro: {k^2}

{\sqrt{k^2-(k^

_

Unknown macro: {mn}

)^2}}

Unknown macro: {mathbf W}

^

TM _

Unknown macro: {mn}

Unknown macro: {mathbf x}

= k^2

Unknown macro: {mathbf Mx}

]

where the waveguide matrices are

Unknown macro: {latex}

[
(

Unknown macro: {mathbf W}

^

Unknown macro: {TE}

_

Unknown macro: {mn}

)_

Unknown macro: {ij}

= \int_

Unknown macro: {Gamma}

\vec

Unknown macro: {mathbf e}

^

_

Unknown macro: {mn}

\cdot \vec

Unknown macro: {mathbf N}

i d\Gamma \int

Unknown macro: {Gamma}

\vec

Unknown macro: {mathbf e}

^

Unknown macro: {TE}

_

\cdot \vec

Unknown macro: {mathbf N}

_j d\Gamma
]
[
(

^

_

Unknown macro: {mn}

)_

Unknown macro: {ij}

= \int_

Unknown macro: {Gamma}

\vec

Unknown macro: {mathbf e}

^

TM _

Unknown macro: {tmn}

\cdot \vec

Unknown macro: {mathbf N}

i d\Gamma \int

Unknown macro: {Gamma}

\vec

Unknown macro: {mathbf e}

^ TM _

\cdot \vec

Unknown macro: {mathbf N}

_j d\Gamma
]

Numerical Methods

The following is a graphical description of the four different types of physics problems that Omega3P can solve and the solver options that can be used.

Parallel Performance

Omega3P parallel performance is heavily dependent on the solver used. In general, using sparse direct solvers for shifted linear systems often yields higher FLOPS than using Krylov subspace iterative methods. On the other hand, the latter has much better scalability.

The following is a strong scalability plot for Omega3P running on ORNL Jaguar (Cray XT). It used 1.5 million higher-order tetrahedral elements for the RF gun of the LCLS. . The number of the degrees of freedom is about 9.6 millions, and the number of nonzeros in the resulting matrix about 506 millions. It is shown that Omega3P scales to 4096 number of CPUs with more than 95% of parallel efficiency.

Past Accomplishments

  • No labels