- print_level2Set the solver verbosity.
Default:2
C++ Type:int
Controllable:No
Description:Set the solver verbosity.
- use_initial_guessFalseWhether to preserve the current MFEM solution vector as the initial guess for an iterative solver.
Default:False
C++ Type:bool
Controllable:No
Description:Whether to preserve the current MFEM solution vector as the initial guess for an iterative solver.
MFEMMUMPS
Overview
Defines and builds an mfem::MUMPSSolver to use as a direct solver to solve the MFEM equation system.
Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.
Advanced Parameters
Input Files
- (test/tests/mfem/complex/mixed_sesquilinear_ic.i)
- (test/tests/mfem/nonlinear/nlheatconduction.i)
- (test/tests/mfem/complex/mixed_sesquilinear.i)
- (test/tests/mfem/complex/mixed_sesquilinear_real_imag.i)
- (test/tests/mfem/functions/cylindrical_coefficients.i)
- (test/tests/mfem/problemcomposers/custom_composer_and_operator.i)
- (test/tests/mfem/nonlinear/nlheattransfer.i)
- (test/tests/mfem/kernels/darcy.i)
- (test/tests/mfem/nonlinear/nlheatconduction_qf.i)
- (test/tests/mfem/complex/complex_waveguide.i)
(test/tests/mfem/complex/mixed_sesquilinear_ic.i)
a=1.0
b=2.0
c=3.0
d=4.0
e=5.0
f=6.0
omega=10.0
[Mesh]
type = MFEMFileMesh
file = ../mesh/square.msh
[]
[Problem]
type = MFEMProblem
numeric_type = complex
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = SECOND
[]
[HCurlFESpace]
type = MFEMVectorFESpace
fec_type = ND
fec_order = SECOND
[]
[]
[Variables]
[V]
type = MFEMComplexVariable
fespace = H1FESpace
[]
[A]
type = MFEMComplexVariable
fespace = HCurlFESpace
[]
[]
[Functions]
[V_exact_real]
type = ParsedFunction
expression = '${a}*x^2+${b}*y^2+${c}*z^2'
[]
[V_exact_imag]
type = ParsedFunction
expression = '${d}*x^2+${e}*y^2+${f}*z^2'
[]
[A_exact_real]
type = ParsedVectorFunction
expression_x = '-2*${d}*x/${omega}'
expression_y = '-2*${e}*y/${omega}'
expression_z = '-2*${f}*z/${omega}'
[]
[A_exact_imag]
type = ParsedVectorFunction
expression_x = '2*${a}*x/${omega}'
expression_y = '2*${b}*y/${omega}'
expression_z = '2*${c}*z/${omega}'
[]
[]
[ICs]
[A_vector_ic]
type = MFEMComplexVectorIC
variable = A
vector_coefficient_real = A_exact_real
vector_coefficient_imag = A_exact_imag
[]
[]
[BCs]
[dbc_V]
type = MFEMComplexScalarDirichletBC
variable = V
coefficient_real = V_exact_real
coefficient_imag = V_exact_imag
[]
[]
[Kernels]
[diff_V]
type = MFEMComplexKernel
variable = V
[RealComponent]
type = MFEMDiffusionKernel
coefficient = 1.0
[]
[]
[mass_A]
type = MFEMMixedSesquilinearFormKernel
trial_variable = A
variable = V
[ImagComponent]
type = MFEMMixedVectorWeakDivergenceKernel
coefficient = -${omega}
[]
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
assembly_level = legacy
[]
[Postprocessors]
[error]
type = MFEMComplexL2Error
variable = V
function_real = V_exact_real
function_imag = V_exact_imag
[]
[]
[Outputs]
csv = true
file_base = OutputData/MixedSesquilinearIC
[]
(test/tests/mfem/nonlinear/nlheatconduction.i)
# Implementation of MFEM Example 16, for a time dependent nonlinear heat equation problem of the
# form
# dT/dt = \nabla \cdot (\kappa + \alpha T) \nabla T
kappa = 0.5
alpha = 1e-2
[Mesh]
type = MFEMFileMesh
file = ../mesh/star.mesh
uniform_refine = 1
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = SECOND
[]
[]
[Variables]
[temperature]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[AuxVariables]
inactive = average_temperature
[average_temperature]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[AuxKernels]
inactive = average_field
[average_field]
type = MFEMScalarTimeAverageAux
variable = average_temperature
source = temperature
[]
[]
[Functions]
[initial]
type = ParsedFunction
expression = 'if((x*x + y*y > 0.251), 1.0, 2.0)'
[]
[diffusivity_temperature_dependence]
type = MFEMParsedFunction
expression = 'alpha * temperature'
symbol_names = 'alpha temperature'
symbol_values = '${alpha} temperature'
[]
[]
[ICs]
[diffused_ic]
type = MFEMScalarIC
coefficient = initial
variable = temperature
[]
[]
[Solvers]
[nl]
type = MFEMNewtonNonlinearSolver
max_its = 30
abs_tol = 1.0e-5
rel_tol = 1.0e-5
print_level = 1
[]
[main]
type = MFEMMUMPS
print_level = 0
[]
[]
[Kernels]
[nl_diffusion]
type = MFEMNLDiffusionKernel
variable = temperature
k_coefficient = diffusivity_temperature_dependence
dk_du_coefficient = ${alpha}
[]
[linear_diffusion]
type = MFEMDiffusionKernel
variable = temperature
coefficient = ${kappa}
[]
[dT_dt]
type = MFEMTimeDerivativeMassKernel
variable = temperature
[]
[]
[Executioner]
type = MFEMTransient
device = cpu
assembly_level = legacy
dt = 1e-2
start_time = 0.0
end_time = 0.5
[]
[VectorPostprocessors]
[centre_temperature]
type = MFEMVariablePointValueSampler
variable = 'temperature'
points = '0.0 0.0 0.0'
execute_on = TIMESTEP_END
[]
[]
[Outputs]
file_base = NLHeatConduction
csv = true
time_step_interval = 10
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/NLHeatConduction
vtk_format = ASCII
[]
[]
(test/tests/mfem/complex/mixed_sesquilinear.i)
a=1.0
b=2.0
c=3.0
omega=10.0
[Mesh]
type = MFEMFileMesh
file = ../mesh/square.msh
[]
[Problem]
type = MFEMProblem
numeric_type = complex
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = FIRST
[]
[HCurlFESpace]
type = MFEMVectorFESpace
fec_type = ND
fec_order = FIRST
[]
[]
[Variables]
[V]
type = MFEMComplexVariable
fespace = H1FESpace
[]
[A]
type = MFEMComplexVariable
fespace = HCurlFESpace
[]
[]
[Functions]
[V_exact_real]
type = ParsedFunction
expression = '${a}*x+${b}*y+${c}*z'
[]
[A_exact_imag]
type = ParsedVectorFunction
expression_x = '${a}/${omega}'
expression_y = '${b}/${omega}'
expression_z = '${c}/${omega}'
[]
[]
[BCs]
[dbc_V]
type = MFEMComplexScalarDirichletBC
variable = V
coefficient_real = V_exact_real
coefficient_imag = 0.0
[]
[dbc_A_tan]
type = MFEMComplexVectorTangentialDirichletBC
variable = A
vector_coefficient_real = '0 0 0'
vector_coefficient_imag = A_exact_imag
[]
[]
[Kernels]
[curlcurl_A]
type = MFEMComplexKernel
variable = A
[RealComponent]
type = MFEMCurlCurlKernel
coefficient = 1.0
[]
[]
[mixed_grad_V]
type = MFEMMixedSesquilinearFormKernel
trial_variable = V
variable = A
[RealComponent]
type = MFEMMixedVectorGradientKernel
coefficient = 1.0
[]
[]
[mass_A]
type = MFEMComplexKernel
variable = A
[ImagComponent]
type = MFEMVectorFEMassKernel
coefficient = ${omega}
[]
[]
[diff_V]
type = MFEMComplexKernel
variable = V
[RealComponent]
type = MFEMDiffusionKernel
coefficient = 1.0
[]
[]
[mixed_mass_A]
type = MFEMMixedSesquilinearFormKernel
trial_variable = A
variable = V
[ImagComponent]
type = MFEMMixedVectorWeakDivergenceKernel
coefficient = -${omega}
[]
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
assembly_level = legacy
[]
[Postprocessors]
[error_V]
type = MFEMComplexL2Error
variable = V
function_real = V_exact_real
function_imag = 0.0
[]
[error_A]
type = MFEMComplexVectorL2Error
variable = A
function_real = '0 0 0'
function_imag = A_exact_imag
[]
[]
[Outputs]
csv = true
file_base = OutputData/MixedSesquilinear
[]
(test/tests/mfem/complex/mixed_sesquilinear_real_imag.i)
a=1.0
b=2.0
c=3.0
d=4.0
e=5.0
f=6.0
omega=10.0
alpha=1.0
beta=0.5
[Mesh]
type = MFEMFileMesh
file = ../mesh/square.msh
[]
[Problem]
type = MFEMProblem
numeric_type = complex
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = SECOND
[]
[HCurlFESpace]
type = MFEMVectorFESpace
fec_type = ND
fec_order = FIRST
[]
[]
[Variables]
[V]
type = MFEMComplexVariable
fespace = H1FESpace
[]
[A]
type = MFEMComplexVariable
fespace = HCurlFESpace
[]
[]
[Functions]
[V_exact_real]
type = ParsedFunction
expression = '${a}*x*y+${b}*x*z+${c}*y*z'
[]
[V_exact_imag]
type = ParsedFunction
expression = '${d}*x*y+${e}*x*z+${f}*y*z'
[]
[A_exact_real]
type = ParsedVectorFunction
expression_x = '-(${beta}*(${a}*y+${b}*z)+${alpha}*(${d}*y+${e}*z))/${omega}'
expression_y = '-(${beta}*(${a}*x+${c}*z)+${alpha}*(${d}*x+${f}*z))/${omega}'
expression_z = '-(${beta}*(${b}*x+${c}*y)+${alpha}*(${e}*x+${f}*y))/${omega}'
[]
[A_exact_imag]
type = ParsedVectorFunction
expression_x = '(${alpha}*(${a}*y+${b}*z)-${beta}*(${d}*y+${e}*z))/${omega}'
expression_y = '(${alpha}*(${a}*x+${c}*z)-${beta}*(${d}*x+${f}*z))/${omega}'
expression_z = '(${alpha}*(${b}*x+${c}*y)-${beta}*(${e}*x+${f}*y))/${omega}'
[]
[]
[BCs]
[dbc_V]
type = MFEMComplexScalarDirichletBC
variable = V
coefficient_real = V_exact_real
coefficient_imag = V_exact_imag
[]
[dbc_A_tan]
type = MFEMComplexVectorTangentialDirichletBC
variable = A
vector_coefficient_real = A_exact_real
vector_coefficient_imag = A_exact_imag
[]
[]
[Kernels]
[diff_V]
type = MFEMComplexKernel
variable = V
[RealComponent]
type = MFEMDiffusionKernel
coefficient = 1.0
[]
[]
[curlcurl_A]
type = MFEMComplexKernel
variable = A
[RealComponent]
type = MFEMCurlCurlKernel
coefficient = 1.0
[]
[]
[mass_A]
type = MFEMComplexKernel
variable = A
[ImagComponent]
type = MFEMVectorFEMassKernel
coefficient = ${omega}
[]
[]
[mixed_grad_V]
type = MFEMMixedSesquilinearFormKernel
trial_variable = V
variable = A
[RealComponent]
type = MFEMMixedVectorGradientKernel
coefficient = ${alpha}
[]
[ImagComponent]
type = MFEMMixedVectorGradientKernel
coefficient = ${beta}
[]
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
assembly_level = legacy
[]
[Postprocessors]
[error_V]
type = MFEMComplexL2Error
variable = V
function_real = V_exact_real
function_imag = V_exact_imag
[]
[error_A]
type = MFEMComplexVectorL2Error
variable = A
function_real = A_exact_real
function_imag = A_exact_imag
[]
[]
[Outputs]
csv = true
file_base = OutputData/MixedSesquilinearRealImag
[]
(test/tests/mfem/functions/cylindrical_coefficients.i)
[Mesh]
type = MFEMFileMesh
file = ../mesh/star.mesh
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = FIRST
[]
[]
[Variables]
[u]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[Functions]
[cylindrical]
type = MFEMCoordinateTransformations
coord_type = RZ
inv_r_eps = 0
[]
[]
[FunctorMaterials]
[material]
type = MFEMGenericFunctorMaterial
prop_names = 'diffCoef massCoef'
prop_values = 'cylindrical_r cylindrical_inv_r'
[]
[]
[BCs]
[Dirichlet]
type = MFEMScalarDirichletBC
variable = u
coefficient = 10
[]
[]
[Kernels]
[diffusion]
type = MFEMDiffusionKernel
variable = u
coefficient = diffCoef
[]
[mass]
type = MFEMMassKernel
variable = u
coefficient = massCoef
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
device = cpu
[]
[VectorPostprocessors]
[LineSampler]
type = MFEMVariableLineValueSampler
variable = 'u'
start_point = '-1 0 0'
end_point = '1 0 0'
num_points = 10
[]
[]
[Outputs]
csv = true
file_base = OutputData/CylindricalCoefficients
[]
(test/tests/mfem/problemcomposers/custom_composer_and_operator.i)
[Mesh]
type = MFEMFileMesh
file = ../mesh/star.mesh
uniform_refine = 2
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1]
type = MFEMScalarFESpace
fec_type = H1
fec_order = SECOND
[]
[]
[Variables]
[u]
type = MFEMVariable
fespace = H1
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[ProblemComposers]
[default_steady]
type = CustomProblemComposer
[]
[]
[Executioner]
type = MFEMSteady
device = cpu
[]
[Postprocessors]
[solution_l2_norm]
type = MFEML2Error
variable = u
function = 0
[]
[]
[Outputs]
[CSV]
type = CSV
execute_on = 'timestep_end'
file_base = OutputData/custom_composer_and_operator/l2norm
[]
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/custom_composer_and_operator
vtk_format = ASCII
[]
[]
(test/tests/mfem/nonlinear/nlheattransfer.i)
[Problem]
type = MFEMProblem
[]
[Mesh]
type = MFEMFileMesh
file = ../mesh/stacked_hexes.e
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = FIRST
[]
[]
[Variables]
[temperature]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[ICs]
[temperature_ic]
type = MFEMScalarIC
coefficient = 200.0
variable = temperature
[]
[]
[Functions]
[T_inf]
type = MFEMParsedFunction
expression = 'temperature + 1'
symbol_names = 'temperature'
symbol_values = 'temperature'
[]
[htc]
type = MFEMParsedFunction
expression = 'temperature/100 + 1'
symbol_names = 'temperature'
symbol_values = 'temperature'
[]
[dhtc_dT]
type = MFEMParsedFunction
expression = '1 / 100'
symbol_names = 'temperature'
symbol_values = 'temperature'
[]
[dT_inf_dT]
type = MFEMParsedFunction
expression = '1'
symbol_names = 'temperature'
symbol_values = 'temperature'
[]
[]
[Solvers]
[nl]
type = MFEMNewtonNonlinearSolver
max_its = 150
abs_tol = 1e-12
rel_tol = 1.0e-8
print_level = 1
[]
[linear]
type = MFEMMUMPS
print_level = 0
[]
[]
[Kernels]
[dT_dt]
type = MFEMTimeDerivativeMassKernel
variable = temperature
[]
[diffusion]
type = MFEMDiffusionKernel
variable = temperature
[]
[]
[BCs]
active = nonlinear
[nonlinear]
type = MFEMNLConvectiveHeatFluxBC
variable = temperature
boundary = 'right'
T_infinity = T_inf
d_T_infinity_dT_coefficient = dT_inf_dT
heat_transfer_coefficient = htc
d_heat_transfer_dT_coefficient = dhtc_dT
[]
[linearized]
type = MFEMNLConvectiveHeatFluxBC
variable = temperature
boundary = 'right'
T_infinity = 201.0
heat_transfer_coefficient = 3.0
d_heat_transfer_dT_coefficient = 0.0
[]
[]
[VectorPostprocessors]
[line_sample]
type = MFEMVariableLineValueSampler
variable = 'temperature'
start_point = '0.0 0.5 0.5'
end_point = '1.0 0.5 0.5'
num_points = 3
execute_on = TIMESTEP_END
[]
[]
[Executioner]
type = MFEMTransient
device = cpu
assembly_level = legacy
dt = 1
num_steps = 3
[]
[Outputs]
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/NLHeatTransfer
vtk_format = ASCII
[]
[CSV]
type = CSV
file_base = NLHeatTransfer
time_step_interval = 3
[]
[]
(test/tests/mfem/kernels/darcy.i)
[Mesh]
type = MFEMFileMesh
file = ../mesh/star.mesh
uniform_refine = 2
[]
[Problem]
type = MFEMProblem
[]
[Functions]
[exact_velocity]
type = ParsedVectorFunction
expression_x = '-exp(x) * sin(y)'
expression_y = '-exp(x) * cos(y)'
[]
[exact_pressure]
type = ParsedFunction
expression = 'exp(x) * sin(y)'
[]
[exact_pressure_rhs]
type = ParsedFunction
expression = '-exp(x) * sin(y)'
[]
[]
[FESpaces]
[HDivFESpace]
type = MFEMVectorFESpace
fec_type = RT
fec_order = SECOND
[]
[L2FESpace]
type = MFEMScalarFESpace
fec_type = L2
fec_order = SECOND
basis = GaussLegendre
[]
[]
[Variables]
[velocity]
type = MFEMVariable
fespace = HDivFESpace
[]
[pressure]
type = MFEMVariable
fespace = L2FESpace
[]
[]
[BCs]
[flux_boundaries]
type = MFEMVectorFEBoundaryFluxIntegratedBC
variable = velocity
coefficient = exact_pressure_rhs
[]
[]
[Kernels]
[VelocityMass]
type = MFEMVectorFEMassKernel
variable = velocity
[]
[PressureGrad]
type = MFEMVectorFEDivergenceKernel
trial_variable = pressure
variable = velocity
coefficient = -1
transpose = true
[]
[VelocityDiv]
type = MFEMVectorFEDivergenceKernel
trial_variable = velocity
variable = pressure
coefficient = -1
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
device = cpu
[]
[Postprocessors]
[velocity_error]
type = MFEMVectorL2Error
variable = velocity
function = exact_velocity
[]
[pressure_error]
type = MFEML2Error
variable = pressure
function = exact_pressure
[]
[]
[Outputs]
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/Darcy
vtk_format = ASCII
[]
[DarcyErrorCSV]
type = CSV
file_base = OutputData/Darcy
[]
[]
(test/tests/mfem/nonlinear/nlheatconduction_qf.i)
# Nonlinear heat conduction (MFEM Example 16), with the temperature-dependent diffusivity routed
# through a scalar quadrature function coefficient. The stored values are re-projected on each
# nonlinear iteration, reproducing the reference solve in nlheatconduction.i.
kappa = 0.5
alpha = 1e-2
[Mesh]
type = MFEMFileMesh
file = ../mesh/star.mesh
uniform_refine = 1
[]
[Problem]
type = MFEMProblem
[]
[FESpaces]
[H1FESpace]
type = MFEMScalarFESpace
fec_type = H1
fec_order = SECOND
[]
[]
[Variables]
[temperature]
type = MFEMVariable
fespace = H1FESpace
[]
[]
[Functions]
[initial]
type = ParsedFunction
expression = 'if((x*x + y*y > 0.251), 1.0, 2.0)'
[]
[diffusivity_temperature_dependence]
type = MFEMParsedFunction
expression = 'alpha * temperature'
symbol_names = 'alpha temperature'
symbol_values = '${alpha} temperature'
[]
[]
[ICs]
[diffused_ic]
type = MFEMScalarIC
coefficient = initial
variable = temperature
[]
[]
[QuadratureFunctions]
[qf_k]
type = MFEMScalarQuadratureFunction
coefficient = diffusivity_temperature_dependence
# the quadrature rule order matches the one used by DiffusionIntegrator for
# second-order H1 elements on quadrilaterals (2 * fe_order + dim - 1 = 5)
order = 5
[]
[]
[Solvers]
[nl]
type = MFEMNewtonNonlinearSolver
max_its = 30
abs_tol = 1.0e-5
rel_tol = 1.0e-5
print_level = 1
[]
[main]
type = MFEMMUMPS
print_level = 0
[]
[]
[Kernels]
[nl_diffusion]
type = MFEMNLDiffusionKernel
variable = temperature
k_coefficient = qf_k
dk_du_coefficient = ${alpha}
[]
[linear_diffusion]
type = MFEMDiffusionKernel
variable = temperature
coefficient = ${kappa}
[]
[dT_dt]
type = MFEMTimeDerivativeMassKernel
variable = temperature
[]
[]
[Executioner]
type = MFEMTransient
device = cpu
assembly_level = legacy
dt = 1e-2
start_time = 0.0
end_time = 0.5
[]
[VectorPostprocessors]
[centre_temperature]
type = MFEMVariablePointValueSampler
variable = 'temperature'
points = '0.0 0.0 0.0'
execute_on = TIMESTEP_END
[]
[]
[Outputs]
file_base = NLHeatConductionQF
csv = true
time_step_interval = 10
[ParaViewDataCollection]
type = MFEMParaViewDataCollection
file_base = OutputData/NLHeatConductionQF
vtk_format = ASCII
[]
[]
(test/tests/mfem/complex/complex_waveguide.i)
freq = 900e6
angfreq = ${fparse 2*pi*freq}
epsilon0 = 8.8541878176e-12
mu0 = ${fparse 4e-7*pi}
magnetic_reluctivity = ${fparse 1/mu0}
elec_cond_mouse = 0.97
elec_cond_air = 1e-323
[Mesh]
type = MFEMFileMesh
file = ../mesh/waveguide.g
[]
[Problem]
type = MFEMProblem
numeric_type = complex
[]
[FESpaces]
[HCurlFESpace]
type = MFEMVectorFESpace
fec_type = ND
fec_order = FIRST
[]
[HDivFESpace]
type = MFEMVectorFESpace
fec_type = RT
fec_order = CONSTANT
[]
[]
[Variables]
[E]
type = MFEMComplexVariable
fespace = HCurlFESpace
[]
[]
[Functions]
[mass_coef_mouse]
type = ParsedFunction
expression = -43*${epsilon0}*${angfreq}^2
[]
[loss_coef_mouse]
type = ParsedFunction
expression = ${angfreq}*${elec_cond_mouse}
[]
[mass_coef_air]
type = ParsedFunction
expression = -${epsilon0}*${angfreq}^2
[]
[loss_coef_air]
type = ParsedFunction
expression = ${angfreq}*${elec_cond_air}
[]
[]
[FunctorMaterials]
[Mouse]
type = MFEMGenericFunctorMaterial
prop_names = 'massCoef lossCoef MagReluctivity'
prop_values = 'mass_coef_mouse loss_coef_mouse ${magnetic_reluctivity}'
block = 1
[]
[Air]
type = MFEMGenericFunctorMaterial
prop_names = 'massCoef lossCoef MagReluctivity'
prop_values = 'mass_coef_air loss_coef_air ${magnetic_reluctivity}'
block = 2
[]
[]
[BCs]
[tangential_E]
type = MFEMComplexVectorTangentialDirichletBC
variable = E
boundary = '2 3 4'
[]
[WaveguidePortIn]
type = MFEMRWTE10IntegratedBC
variable = E
boundary = '5'
input_port = true
port_length_vector = "24.76e-2 0.0 0.0"
port_width_vector = "0.0 12.38e-2 0.0"
frequency = ${freq}
epsilon = ${epsilon0}
mu = ${mu0}
[]
[WaveguidePortOut]
type = MFEMRWTE10IntegratedBC
variable = E
boundary = '6'
input_port = false
port_length_vector = "24.76e-2 0.0 0.0"
port_width_vector = "0.0 12.38e-2 0.0"
frequency = ${freq}
epsilon = ${epsilon0}
mu = ${mu0}
[]
[]
[Kernels]
[curlcurl]
type = MFEMComplexKernel
variable = E
[RealComponent]
type = MFEMCurlCurlKernel
coefficient = MagReluctivity
[]
[]
[mass_loss]
type = MFEMComplexKernel
variable = E
[RealComponent]
type = MFEMVectorFEMassKernel
coefficient = massCoef
[]
[ImagComponent]
type = MFEMVectorFEMassKernel
coefficient = lossCoef
[]
[]
[]
[Solvers]
[main]
type = MFEMMUMPS
[]
[]
[Executioner]
type = MFEMSteady
assembly_level = legacy
[]
[Postprocessors]
[ObstructionAbsorption]
type = MFEMComplexVectorPeriodAveragedPostprocessor
coefficient = ${elec_cond_mouse}
dual_variable = E
primal_variable = E
block = 1
[]
[]
[Outputs]
[ReportedPostprocessors]
type = CSV
file_base = OutputData/ComplexWaveguide
[]
[]