Configuration File Reference

Problem
Output Formats
Model
Mesh Refinement
Domains
Materials · CurrentDipole · Domain Postprocessing
Boundaries
PEC Boundary · PMC Boundary · Impedance · Absorbing Boundary · Conductivity · Lumped Port · Wave Port · Floquet Port · Wave Port PEC · Surface Current · Ground Boundary · Zero Charge Boundary · Terminal · Periodic Boundary · Boundary Postprocessing
Solver
Eigenmode Solver · Driven Solver · Transient Solver · Electrostatic Solver · Magnetostatic Solver · Boundary Mode Solver · Linear Solver

Problem

Path: /Problem

type: object required

Top-level configuration for the simulation type and output.

"Type" type: string required

Controls the simulation type.

"Eigenmode"
Perform an eigenmode analysis.
"Driven"
Perform a frequency-domain driven simulation.
"Transient"
Perform a time-domain excitation response simulation.
"Electrostatic"
Perform an electrostatic analysis to compute the capacitance matrix for a set of voltage terminals.
"Magnetostatic"
Perform a magnetostatic analysis to compute the inductance matrix for a set of current sources.
"BoundaryMode"
Perform a 2D waveguide boundary mode analysis to compute propagation constants on a cross-section.
"Verbose" type: integer default: 1 constraint: ≥ 0

Controls the level of log file printing.

"Output" type: string default: "postpro"

Directory path for saving postprocessing outputs. When omitted, results are written to a postpro directory relative to the working directory.

"OutputFormats" type: object

See full reference ↓

Output Formats

Path: /Problem/OutputFormats

type: object

Configures the field output formats.

"Paraview" type: boolean default: true

Set to true to output fields in ParaView format.

"GridFunction" type: boolean default: false

Set to true to output fields in MFEM grid function format for visualization with GLVis.

Model

Path: /Model

type: object required

Mesh and model configuration.

"Mesh" type: string required

Input mesh file path. An absolute path is recommended. If the provided mesh is nonconformal, it is assumed to come from a previous Palace AMR solve, and all mesh preprocessing checks and modifications (for example CrackInternalBoundaryElements) are skipped.

"L0" type: number default: 1.0e-6 constraint: > 0.0

Unit, relative to meters, for mesh vertex coordinates. For example, a value of 1.0e-6 means the mesh coordinates are in μm.

"Lc" type: number constraint: > 0.0

Characteristic length scale used for nondimensionalization, specified in mesh length units. This keyword should typically not be specified by the user. If omitted, Palace uses the largest mesh bounding-box dimension, max_i(bbmax_i - bbmin_i). A value of 1.0 will disable nondimensionalization, so that all computations will take place in the same units as the mesh.

"RemoveCurvature" type: boolean default: false advanced

Project high-order nodes to the mesh surface, removing all curvature before the simulation.

"MakeSimplex" type: boolean default: false advanced

Convert all mesh elements to simplices (tetrahedra/triangles).

"MakeHexahedral" type: boolean default: false advanced

Convert all mesh elements to hexahedra.

"ReorderElements" type: boolean default: false advanced

Reorder mesh elements to improve cache efficiency.

"CleanUnusedElements" type: boolean default: true advanced

Remove elements not connected to any domain material.

"CrackInternalBoundaryElements" type: boolean default: true advanced

Duplicate nodes along internal boundary elements to create a crack.

"RefineCrackElements" type: boolean default: true advanced

Refine elements adjacent to cracked internal boundaries.

"CrackDisplacementFactor" type: number default: 1.0e-12 constraint: ≥ 0.0 advanced

Displacement factor applied to cracked nodes as a fraction of the local element size.

"AddInterfaceBoundaryElements" type: boolean default: true advanced

Add boundary elements at interfaces between domains that lack them.

"ExportPrerefinedMesh" type: boolean default: false advanced

Export the mesh after preprocessing but before AMR refinement.

"ReorientTetMesh" type: boolean default: false advanced

Reorient tetrahedral elements to ensure positive Jacobians.

"Partitioning" type: string advanced

Path to a mesh partitioning file. If omitted, partitioning is computed automatically.

"Refinement" type: object

See full reference ↓

Mesh Refinement

Path: /Model/Refinement

type: object

Configuration for adaptive and uniform mesh refinement.

"Tol" type: number default: 0.01 constraint: > 0.0

Stop adaptive mesh refinement (AMR) when the norm of the estimated error falls below this value. The error is reported in error-indicators.csv.

"MaxIts" type: integer default: 0 constraint: ≥ 0

Maximum number of AMR iterations to perform.

"MaxSize" type: number default: 0 constraint: ≥ 0

The maximum allowable number of degrees of freedom for AMR. If an adapted mesh exceeds this value no further adaptation will occur. A value less than 1 means that no maximum size constraint will be imposed.

"UpdateFraction" type: number default: 0.7 constraint: > 0.0, < 1.0

Dörfler marking fraction used to specify which elements to refine. This marking strategy will mark the smallest number of elements that make up "UpdateFraction" of the total error in the mesh. A larger value will refine more elements per iteration, at the cost of the final mesh being less efficient.

"Nonconformal" type: boolean default: true

Use nonconformal refinement in adaptation. Required for non-simplex meshes.

"MaxNCLevels" type: integer default: 1 constraint: ≥ 0 advanced

Maximum number of nonconformal refinement levels. 0 means no limit.

"MaximumImbalance" type: number default: 1.1 constraint: ≥ 1.0 advanced

Maximum ratio of elements between the most- and least-loaded MPI ranks before repartitioning.

"SaveAdaptIterations" type: boolean default: true advanced

Save postprocessing results from each AMR iteration in a subdirectory iterationX.

"SaveAdaptMesh" type: boolean default: false advanced

Save the final adapted mesh to disk.

"UniformLevels" type: integer default: 0 constraint: ≥ 0

Levels of uniform parallel mesh refinement to be performed on the input mesh. If not performing AMR, these may be used as levels within a geometric multigrid scheme. If performing AMR the most refined mesh is used as the initial mesh and the coarser meshes cannot be used in a geometric multigrid scheme.

"SerialUniformLevels" type: integer default: 0 constraint: ≥ 0 advanced

Levels of uniform serial mesh refinement applied before parallel distribution.

"Boxes" type: [object, ...]

See full reference ↓

"Spheres" type: [object, ...]

See full reference ↓

Boxes

Path: /Model/Refinement/Boxes

type: [object, ...]

Array of axis-aligned box refinement regions. All elements with a node inside the box are marked for refinement.

Path: /Model/Refinement/Boxes/0

"Levels" type: integer required constraint: ≥ 0

Levels of parallel mesh refinement inside this box region.

"BoundingBoxMin" type: [number × 3] required

Minimum coordinates [x, y, z] of the axis-aligned bounding box for this refinement region, in mesh length units.

"BoundingBoxMax" type: [number × 3] required

Maximum coordinates [x, y, z] of the axis-aligned bounding box for this refinement region, in mesh length units.

Spheres

Path: /Model/Refinement/Spheres

type: [object, ...]

Array of sphere refinement regions. All elements with a node inside the sphere are marked for refinement.

Path: /Model/Refinement/Spheres/0

"Levels" type: integer required constraint: ≥ 0

Levels of parallel mesh refinement inside this sphere region.

"Radius" type: number required constraint: > 0.0

Radius of the sphere, in mesh length units.

"Center" type: [number × 3] required

Center coordinates [x, y, z] of the sphere, in mesh length units.

Domains

Path: /Domains

type: object required

Material and domain configuration.

"Materials" type: [object, ...] required

See full reference ↓

"CurrentDipole" type: [object, ...]

See full reference ↓

"Postprocessing" type: object

See full reference ↓

Materials

Path: /Domains/Materials

type: [object, ...] required

Array of material property objects.

Path: /Domains/Materials/0

"Attributes" type: [integer, ...] required

Integer array of mesh domain attributes this object applies to.

"Permeability" type: number or [number × 3] default: 1.0

Relative permeability for this material. Scalar or vector of 3 coefficients corresponding to each of "MaterialAxes".

"Permittivity" type: number or [number × 3] default: 1.0

Relative permittivity for this material. Scalar or vector of 3 coefficients corresponding to each of "MaterialAxes".

"LossTan" type: number or [number × 3] default: 0.0

Loss tangent for this material. Scalar or vector of 3 coefficients corresponding to each of "MaterialAxes".

"Conductivity" type: number or [number × 3] default: 0.0

Electrical conductivity for this material, S/m. Activates the Ohmic loss model in this domain. Scalar or vector of 3 coefficients corresponding to each of "MaterialAxes".

"LondonDepth" type: number default: 0.0

London penetration depth for this material, specified in mesh length units. Activates the London equations-based model relating superconducting current and electromagnetic fields in this domain.

"MaterialAxes" type: [[number × 3] × 3] default: [[1.0,0.0,0.0],[0.0,1.0,0.0],[0.0,0.0,1.0]]

Axes directions for specification of anisotropic material properties. Required to be unit length and orthogonal.

CurrentDipole

Path: /Domains/CurrentDipole

type: [object, ...]

Array of current dipole source excitations.

Path: /Domains/CurrentDipole/0

"Index" type: integer required constraint: > 0

Index of this current dipole source, used in postprocessing output files.

"Moment" type: number required

Current dipole moment magnitude, A·m.

"Center" type: [number × 3] required

Coordinates of the dipole center position [x, y, z], in mesh length units.

"Direction" type: string or [number × 3] required

Direction of the Dirac current source specifying the dipole. Axis-aligned directions can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z". The direction can alternatively be specified as a normalized array of three values, for example [0.0, 1.0, 0.0].

Allowed keyword values:

  • Cartesian: "X", "Y", "Z", "+X", "+Y", "+Z", "-X", "-Y", "-Z"
  • Lowercase forms are also accepted.

Domain Postprocessing

Path: /Domains/Postprocessing

type: object

Configuration for domain postprocessing.

"Energy" type: [object, ...]

See full reference ↓

"Probe" type: [object, ...]

See full reference ↓

Energy

Path: /Domains/Postprocessing/Energy

type: [object, ...]

Array of objects for postprocessing domain energies. Postprocesses the electric and magnetic field energy inside a given domain. Results are written to domain-E.csv in the output directory.

Path: /Domains/Postprocessing/Energy/0

"Index" type: integer required constraint: > 0

Index of this energy postprocessing domain, used in output files.

"Attributes" type: [integer, ...] required

Integer array of mesh domain attributes this object applies to.

Probe

Path: /Domains/Postprocessing/Probe

type: [object, ...]

Array of probe points for evaluating field values at specified locations in space. The electric field E and magnetic flux density B are probed and written to probe-E.csv and probe-B.csv in the output directory.

Path: /Domains/Postprocessing/Probe/0

"Index" type: integer required constraint: > 0

Index of this probe, used in postprocessing output files.

"Center" type: [number × 3] required

Coordinates of this probe [x, y, z], in mesh length units.

Boundaries

Path: /Boundaries

type: object required

Boundary condition configuration.

"PEC" type: object

See full reference ↓

"PMC" type: object

See full reference ↓

"Impedance" type: [object, ...]

See full reference ↓

"Absorbing" type: object

See full reference ↓

"Conductivity" type: [object, ...]

See full reference ↓

"LumpedPort" type: [object, ...]

See full reference ↓

"WavePort" type: [object, ...]

See full reference ↓

"FloquetPort" type: [object, ...]

See full reference ↓

"WavePortPEC" type: object

See full reference ↓

"SurfaceCurrent" type: [object, ...]

See full reference ↓

"Ground" type: object

See full reference ↓

"ZeroCharge" type: object

See full reference ↓

"Terminal" type: [object, ...]

See full reference ↓

"Periodic" type: object

See full reference ↓

"Postprocessing" type: object

See full reference ↓

PEC Boundary

Path: /Boundaries/PEC

type: object

Perfect electric conductor (PEC) boundary condition: enforces zero tangential electric field. This is a homogeneous Dirichlet condition for frequency/time domain and magnetostatic formulations.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

PMC Boundary

Path: /Boundaries/PMC

type: object

Perfect magnetic conductor (PMC) boundary condition: enforces zero tangential magnetic field. This is the natural (homogeneous Neumann) boundary condition; it also imposes symmetry of the electric field across the surface.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

Impedance

Path: /Boundaries/Impedance

type: [object, ...]

Array of surface impedance boundary conditions. The surface impedance relates the tangential electric and magnetic fields using the parallel combination of the specified resistance, inductance, and capacitance per square.

Path: /Boundaries/Impedance/0

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Rs" type: number default: 0.0

Surface resistance for this impedance boundary, Ω/sq.

"Ls" type: number default: 0.0

Surface inductance for this impedance boundary, H/sq.

"Cs" type: number default: 0.0

Surface capacitance for this impedance boundary, F/sq.

Absorbing Boundary

Path: /Boundaries/Absorbing

type: object

Farfield absorbing (scattering) boundary conditions. These are artificial boundary conditions applied at farfield boundaries to minimize reflections.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Order" type: integer default: 1 constraint: ≥ 1, ≤ 2 advanced

Specify a first- or second-order approximation for the absorbing boundary condition. Second-order is only available for frequency domain driven simulations.

Conductivity

Path: /Boundaries/Conductivity

type: [object, ...]

Array of finite conductivity surface impedance boundaries. Models the effect of a boundary with non-infinite conductivity for conductors with thickness much larger than the skin depth. Only available for frequency domain driven and eigenmode simulations.

Path: /Boundaries/Conductivity/0

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Conductivity" type: number required

Electrical conductivity for this boundary, S/m.

"Permeability" type: number default: 1.0

Relative permeability for this boundary.

"Thickness" type: number default: 0.0

Optional conductor thickness in mesh length units. Activates a finite-thickness boundary condition for metal.

"External" type: boolean default: false

Whether this boundary is on the exterior of the computational domain. Relevant for the thickness correction.

Lumped Port

Path: /Boundaries/LumpedPort

type: [object, ...]

Array of lumped port boundary conditions. Lumped ports can be specified on boundaries internal to the computational domain.

Path: /Boundaries/LumpedPort/0

"Index" type: integer required constraint: > 0

Index of this lumped port, used in postprocessing output files. Must be unique across all port and source types.

"Attributes" type: [integer, ...]

Integer array of mesh boundary attributes for this lumped port boundary. If this port is to be a multielement lumped port with more than a single lumped element, use the "Elements" array described below.

"Direction" type: string or [number × 3]

Excitation direction. Axis-aligned Cartesian directions can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z". Coaxial directions use "+R", "-R". Alternatively, specify a normalized 3-element array, e.g. [0.0, 1.0, 0.0]. The coordinate system is determined by "CoordinateSystem".

Allowed keyword values:

  • Cartesian: "X", "Y", "Z", "+X", "+Y", "+Z", "-X", "-Y", "-Z"
  • Coaxial: "R", "+R", "-R"
  • Lowercase forms are also accepted.
"CoordinateSystem" type: string default: "Cartesian"

Coordinate system used to express the "Direction" vector. If a keyword argument is used for "Direction" this value is ignored.

"Cartesian"
Standard Cartesian coordinates.
"Cylindrical"
Cylindrical coordinates (enables +R/-R directions).
"R" type: number default: 0.0

Circuit resistance, Ω. Use with "L" and "C"; do not mix with surface parameters "Rs", "Ls", "Cs".

"L" type: number default: 0.0

Circuit inductance, H. Use with "R" and "C"; do not mix with surface parameters "Rs", "Ls", "Cs".

"C" type: number default: 0.0

Circuit capacitance, F. Use with "R" and "L"; do not mix with surface parameters "Rs", "Ls", "Cs".

"Rs" type: number default: 0.0

Surface resistance, Ω/sq. Use with "Ls" and "Cs"; do not mix with circuit parameters "R", "L", "C".

"Ls" type: number default: 0.0

Surface inductance, H/sq. Use with "Rs" and "Cs"; do not mix with circuit parameters "R", "L", "C".

"Cs" type: number default: 0.0

Surface capacitance, F/sq. Use with "Rs" and "Ls"; do not mix with circuit parameters "R", "L", "C".

"Excitation" type: boolean or integer default: false

Turns on or off port excitation for driven or transient simulations. Can be specified as a boolean or as a non-negative integer (excitation group index). See the boundary conditions guide for details.

"Active" type: boolean default: true

Turns on or off the damping boundary condition for this port for driven or transient simulations.

"IncludeInSynthesis" type: boolean default: true advanced

Controls whether this lumped port contributes a port-mode basis vector to the reduced-order model when adaptive driven circuit synthesis is enabled (AdaptiveCircuitSynthesis). The boundary condition itself (the R/L/C or Rs/Ls/Cs termination) is always enforced; only the inclusion of the port mode in the synthesized circuit matrices is affected. Set to false on passive terminations whose row/column in the synthesized $L^{-1}$, $C$, $R^{-1}$ matrices is not needed — for example, peripheral 50 Ohm launcher pads kept in the simulation for correct physics but not measured. Setting this to false reduces the size of the PROM basis by one vector per excluded port. Excited ports must always be included; the configuration parser will reject a port with "Excitation" > 0 and "IncludeInSynthesis": false.

"Elements" type: [object, ...]

See full reference ↓

Elements

Path: /Boundaries/LumpedPort/Elements

type: [object, ...]

Sub-elements for a multielement lumped port. Use this instead of the top-level "Attributes"/"Direction"/"CoordinateSystem" when the port spans multiple disjoint boundary surfaces. Elements add in parallel.

Path: /Boundaries/LumpedPort/Elements/0

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Direction" type: string or [number × 3] required

Excitation direction. Axis-aligned Cartesian directions can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z". Coaxial directions use "+R", "-R". Alternatively, specify a normalized 3-element array, e.g. [0.0, 1.0, 0.0]. The coordinate system is determined by "CoordinateSystem".

Allowed keyword values:

  • Cartesian: "X", "Y", "Z", "+X", "+Y", "+Z", "-X", "-Y", "-Z"
  • Coaxial: "R", "+R", "-R"
  • Lowercase forms are also accepted.
"CoordinateSystem" type: string default: "Cartesian"

Coordinate system for this element's "Direction" vector.

"Cartesian"
Standard Cartesian coordinates.
"Cylindrical"
Cylindrical coordinates (enables +R/-R directions).

Wave Port

Path: /Boundaries/WavePort

type: [object, ...]

Array of numeric wave port boundary conditions. Wave ports can only be specified on the true boundary of the computational domain (they must be "one-sided"). A 2D boundary mode eigenproblem is solved on each wave port to compute the port mode shape. Only available for frequency domain driven and eigenmode simulations.

Path: /Boundaries/WavePort/0

"Index" type: integer required constraint: > 0

Index of this wave port, used in postprocessing output files. Must be unique across all port and source types.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Mode" type: integer default: 1 constraint: > 0

Mode index (1-based) for the characteristic port mode of this wave port, ranked in order of decreasing wave number.

"Offset" type: number default: 0.0 constraint: ≥ 0.0

Offset distance used for S-parameter de-embedding for this wave port, specified in mesh length units.

"SolverType" type: string

Eigenvalue solver for computing the boundary mode. Accepts the same options as /Solver/Eigenmode/Type. If omitted, Palace selects the available eigenvalue solver backend.

"Default"
Use Palace's default backend selection for the available build.
"SLEPc"
Use the SLEPc eigensolver backend.
"ARPACK"
Use the ARPACK eigensolver backend.
"Excitation" type: boolean or integer default: false

Turns on or off port excitation for driven simulations. Can be specified as a boolean or as a non-negative integer (excitation group index). See the boundary conditions guide for details.

"Active" type: boolean default: true

Turns on or off the damping boundary condition for this port for driven simulations.

"MaxIts" type: integer default: 45 constraint: > 0 advanced

Maximum number of iterations for the GMRES solver used in the wave port boundary mode analysis.

"KSPTol" type: number default: 1.0e-8 constraint: > 0.0 advanced

Tolerance for the linear solver used in the wave port boundary mode analysis.

"EigenTol" type: number default: 1.0e-6 constraint: > 0.0 advanced

Tolerance for the eigenvalue solver used in the wave port boundary mode analysis.

"MaxSize" type: integer constraint: > 0 advanced

Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses max(2 × Mode, Mode + 15).

"Verbose" type: integer default: 0 constraint: ≥ 0.0 advanced

Verbosity level for the wave port linear and eigensolvers.

"VoltagePath" type: [[number, ...], ...]

Open path of coordinate points across the port face, specified in mesh length units. Each entry is a floating point array of length equal to the spatial dimension. The path is directed from the signal (high-potential) terminal to the ground (low-potential) terminal, matching the lumped-port "Direction" convention. When specified, this: 1. Pins the wave-port mode polarity so that $\int E_{\text{mode}} \cdot dl$ along the path is real-positive (required for consistent S-parameter signs when mixing wave and lumped ports in a driven simulation; without it, cross-type S-parameters may be $180^\circ$ out of phase). 2. Enables voltage and characteristic impedance $Z_{PV}$ postprocessing for the wave port. For example, in a coaxial wave port the first point is on the inner conductor (signal) and the last point is on the outer conductor (ground); for a CPW port, the first point is on the center trace and the last point in the gap. Uses GSLIB interpolation.

"NSamples" type: integer default: 100 constraint: ≥ 1

Number of uniformly spaced sample points for the coordinate-based voltage line integral.

"PolarityAttributes" type: [integer × 2]

Pair of parent-mesh boundary attributes [signal, ground] (signal/high-potential terminal first, ground/low-potential terminal second). Same role as the polarity component of VoltagePath: the mode is flipped so that the modal E-field points from the signal attribute toward the ground attribute. Ignored if "VoltagePath" is also specified. Lightweight alternative to "VoltagePath" when only polarity is needed (no $Z_{PV}$, no GSLIB). Both attributes must be present as distinct boundary attributes in the input mesh, with edges that lie on the port face.

Floquet Port

Path: /Boundaries/FloquetPort

type: [object, ...]

Array of Floquet port boundary conditions for periodic driven simulations. Floquet ports model diffraction gratings and other periodic electromagnetic devices, compute diffraction-order S-parameters, and require Periodic boundary conditions with two transverse boundary pairs.

Floquet Port

Path: /Boundaries/FloquetPort/0

Floquet port boundary condition for periodic driven simulations.

"Index" type: integer required constraint: > 0

Index of this Floquet port, used in postprocessing output files. Must be unique across all port and source types.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes for this Floquet port. The port face must be planar and lie on the true boundary of the computational domain; the adjacent medium must be homogeneous and isotropic.

"Excitation" type: boolean or integer default: false

Excitation flag or positive excitation index. When excited, injects a unit-power plane wave in the specular (0, 0) diffraction order.

"IncidentPolarization" type: string default: "TE"

Incident plane-wave polarization.

"TE"
Transverse electric (s-polarization).
"TM"
Transverse magnetic (p-polarization).
"RHC"
Right-hand circular polarization.
"LHC"
Left-hand circular polarization.
"MaxOrder" type: integer constraint: ≥ 0

Maximum diffraction order index to include. If omitted, Palace starts from 3 and caps each lattice direction at the mesh Nyquist limit max(1, floor(p × π / (|b_i| × h_max))), where p is the maximum element order, b_i is a reciprocal lattice vector, and h_max is the maximum port-boundary element size. 0 includes only the specular (0, 0) order.

Wave Port PEC

Path: /Boundaries/WavePortPEC

type: object

Additional PEC boundary conditions for the 2D eigensolve used in wave port mode analysis, along with those already specified under PEC and Conductivity. Only relevant when WavePort boundaries are present.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

Surface Current

Path: /Boundaries/SurfaceCurrent

type: [object, ...]

Array of surface current source boundaries. Prescribes a unit source surface current excitation on the given boundary to excite a driven, transient, or magnetostatic simulation. For magnetostatic simulations, inductance matrix entries are extracted for each surface current boundary.

Path: /Boundaries/SurfaceCurrent/0

"Index" type: integer required constraint: > 0

Index of this surface current source, used in postprocessing output files. Must be unique across all port and source types.

"Attributes" type: [integer, ...]

Integer array of mesh boundary attributes for this surface current boundary. If this is to be a object with more than a single element, use the "Elements" array described below.

"Direction" type: string or [number × 3]

Excitation direction. Axis-aligned Cartesian directions can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z". Coaxial directions use "+R", "-R". Alternatively, specify a normalized 3-element array, e.g. [0.0, 1.0, 0.0]. The coordinate system is determined by "CoordinateSystem".

Allowed keyword values:

  • Cartesian: "X", "Y", "Z", "+X", "+Y", "+Z", "-X", "-Y", "-Z"
  • Coaxial: "R", "+R", "-R"
  • Lowercase forms are also accepted.
"CoordinateSystem" type: string default: "Cartesian"

Coordinate system for the "Direction" vector. Same options as /LumpedPort/CoordinateSystem.

"Cartesian"
Standard Cartesian coordinates.
"Cylindrical"
Cylindrical coordinates (enables +R/-R directions).
"Elements" type: [object, ...]

See full reference ↓

Elements

Path: /Boundaries/SurfaceCurrent/Elements

type: [object, ...]

Sub-elements for a multielement surface current source. Use this instead of the top-level "Attributes"/"Direction"/"CoordinateSystem" when the source spans multiple disjoint boundary surfaces. Elements add in parallel to give the same total current as a single-element source.

Path: /Boundaries/SurfaceCurrent/Elements/0

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Direction" type: string or [number × 3] required

Excitation direction. Axis-aligned Cartesian directions can be specified using keywords: "+X", "-X", "+Y", "-Y", "+Z", "-Z". Coaxial directions use "+R", "-R". Alternatively, specify a normalized 3-element array, e.g. [0.0, 1.0, 0.0]. The coordinate system is determined by "CoordinateSystem".

Allowed keyword values:

  • Cartesian: "X", "Y", "Z", "+X", "+Y", "+Z", "-X", "-Y", "-Z"
  • Coaxial: "R", "+R", "-R"
  • Lowercase forms are also accepted.
"CoordinateSystem" type: string default: "Cartesian"

Coordinate system for this element's "Direction" vector.

"Cartesian"
Standard Cartesian coordinates.
"Cylindrical"
Cylindrical coordinates (enables +R/-R directions).

Ground Boundary

Path: /Boundaries/Ground

type: object

Zero-voltage (ground) boundary condition for electrostatic simulations. Mutually exclusive with PEC.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

Zero Charge Boundary

Path: /Boundaries/ZeroCharge

type: object

Zero surface charge (homogeneous Neumann) boundary condition for electrostatic simulations. Also imposes symmetry of the electric field across the surface. Mutually exclusive with PMC.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

Terminal

Path: /Boundaries/Terminal

type: [object, ...]

Array of terminal boundaries for electrostatic simulations. Capacitance matrix entries are extracted for each terminal.

Path: /Boundaries/Terminal/0

"Index" type: integer required constraint: > 0

Index of this terminal, used in postprocessing output files and to index the computed capacitance matrix.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

Periodic Boundary

Path: /Boundaries/Periodic

type: object

Periodic boundary conditions for surfaces whose meshes are identical after translation and/or rotation. Floquet periodic boundary conditions with a phase shift are also supported.

"BoundaryPairs" type: [object, ...] required

See full reference ↓

"FloquetWaveVector" type: [number × 3] default: [0.0,0.0,0.0]

3-element Floquet wave vector [kx, ky, kz] defining the phase delay between periodic boundaries, in radians per mesh length unit.

"FloquetReferenceFrequency" type: number default: 0.0 constraint: ≥ 0

Reference frequency, GHz, at which "FloquetWaveVector" is defined. When nonzero, the Bloch wave vector scales linearly with frequency during a driven frequency sweep; when zero, it is held constant.

BoundaryPairs

Path: /Boundaries/Periodic/BoundaryPairs

type: [object, ...] required

Array of donor–receiver boundary pairs defining the periodic mapping.

Path: /Boundaries/Periodic/BoundaryPairs/0

"DonorAttributes" type: [integer, ...] required

Integer array of donor mesh boundary attributes for a periodic boundary pair.

"ReceiverAttributes" type: [integer, ...] required

Integer array of receiver mesh boundary attributes for a periodic boundary pair.

"Translation" type: [number × 3]

3-element translation vector [dx, dy, dz] from donor to receiver boundary, in mesh length units. If neither "Translation" nor "AffineTransformation" are specified, the transformation is detected automatically.

"AffineTransformation" type: [number × 16]

16-element row-major 4×4 affine transformation matrix from donor to receiver boundary, in mesh length units. If neither "Translation" nor "AffineTransformation" are specified, the transformation is detected automatically.

Boundary Postprocessing

Path: /Boundaries/Postprocessing

type: object

Configuration for boundary postprocessing.

"SurfaceFlux" type: [object, ...]

See full reference ↓

"Dielectric" type: [object, ...]

See full reference ↓

"Impedance" type: [object, ...]

See full reference ↓

"Voltage" type: [object, ...]

See full reference ↓

"FarField" type: object

See full reference ↓

Surface Flux

Path: /Boundaries/Postprocessing/SurfaceFlux

type: [object, ...]

Array of surface flux postprocessing boundaries. Results are written to surface-F.csv in the output directory.

Path: /Boundaries/Postprocessing/SurfaceFlux/0

"Index" type: integer required constraint: > 0

Index of this surface flux postprocessing boundary, used in output files.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Type" type: string required

Type of surface flux to integrate over the boundary.

"Electric"
Integrate the electric flux density.
"Magnetic"
Integrate the magnetic flux density.
"Power"
Integrate the Poynting vector (energy flux).
"TwoSided" type: boolean default: false

For internal boundary surfaces: when false, the flux on both sides is averaged; when true, it is summed with opposite normal direction.

"Center" type: [number × 3]

Point used to determine the outward normal orientation, in mesh length units. Only used when "TwoSided" is false. If not specified, the point will be computed as the centroid of the axis-aligned bounding box for all elements making up the postprocessing boundary.

Dielectric

Path: /Boundaries/Postprocessing/Dielectric

type: [object, ...]

Array of interface dielectric loss postprocessing boundaries. Computes energy participation ratios (EPR) and quality factors for dielectric interfaces. See also the reference documentation. Results are written to surface-Q.csv in the output directory.

Path: /Boundaries/Postprocessing/Dielectric/0

"Index" type: integer required constraint: > 0

Index of this dielectric interface, used in output files.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"Thickness" type: number required

Thickness of this dielectric interface, in mesh length units.

"Permittivity" type: number required

Relative permittivity of this dielectric interface layer. This should be the interface layer permittivity for the specific "Type" of interface specified.

"Type" type: string default: "Default"

Interface type used to determine the boundary conditions for computing the EPR. See also theory reference.

"Default"
Use the full electric field evaluated at the boundary.
"MA"
Use metal-air interface boundary conditions.
"MS"
Use metal-substrate interface boundary conditions.
"SA"
Use substrate-air interface boundary conditions.
"LossTan" type: number default: 0.0

Loss tangent of this dielectric interface.

Mode Impedance

Path: /Boundaries/Postprocessing/Impedance

type: [object, ...]

Array of objects for postprocessing mode impedance via voltage and current line integrals.

Path: /Boundaries/Postprocessing/Impedance/0

"Index" type: integer required

Index of this impedance postprocessing boundary, used in postprocessing output files.

"VoltageAttributes" type: [integer, ...]

Integer array of mesh boundary attributes for the voltage integration path across the gap between ground and trace. Either "VoltageAttributes" or "VoltagePath" must be specified.

"CurrentAttributes" type: [integer, ...]

Integer array of mesh boundary attributes for the current integration loop around the trace. Either "CurrentAttributes" or "CurrentPath" may be specified for the V/I impedance calculation.

"VoltagePath" type: [[number, ...], ...]

Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units. Uses uniformly weighted GSLIB interpolation, which is less accurate than the attribute-based method but does not require modifying the mesh to include integration boundaries.

"CurrentPath" type: [[number, ...], ...]

Array of coordinate points defining a closed loop for computing the current line integral $I = \oint \mathbf{H}_t \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. The last point connects back to the first. Specified in mesh length units.

"NSamples" type: integer default: 100 constraint: ≥ 1

Number of uniformly spaced sample points for the coordinate-based line integrals (using GSLIB interpolation).

Mode Voltage

Path: /Boundaries/Postprocessing/Voltage

type: [object, ...]

Array of objects for postprocessing mode voltage via line integrals.

Path: /Boundaries/Postprocessing/Voltage/0

"Index" type: integer required

Index of this voltage postprocessing boundary, used in postprocessing output files.

"VoltageAttributes" type: [integer, ...]

Integer array of mesh boundary attributes for the voltage integration path. Either "VoltageAttributes" or "VoltagePath" must be specified.

"VoltagePath" type: [[number, ...], ...]

Array of coordinate points defining an open path for computing the voltage line integral $V = \int \mathbf{E} \cdot d\mathbf{l}$. Each element is a floating point array of length equal to the spatial dimension. At least two points are required. Specified in mesh length units.

"NSamples" type: integer default: 100 constraint: ≥ 1

Number of uniformly spaced sample points for the coordinate-based line integral (GSLIB interpolation).

Far Field

Path: /Boundaries/Postprocessing/FarField

type: object

Far-field electric field extraction. The boundary attributes must enclose the system and be on an external boundary.

"Attributes" type: [integer, ...] required

Integer array of mesh boundary attributes this object applies to.

"NSample" type: integer default: 0 constraint: ≥ 0

Number of uniformly-spaced points used to discretize the far-field sphere.

"ThetaPhis" type: [[number × 2], ...]

Additional specific (θ, φ) angle pairs in degrees at which to evaluate the far field. θ ∈ [0°, 180°] is the polar angle, φ ∈ [0°, 360°] is the azimuthal angle.

Solver

Path: /Solver

type: object required

Solver configuration for all simulation types.

"Order" type: integer default: 1 constraint: ≥ 1

Finite element order (degree). Arbitrary high-order spaces are supported.

"PartialAssemblyOrder" type: integer default: 1 constraint: ≥ 1

Order at which to switch from full assembly of finite element operators to partial assembly. Setting to 1 fully activates partial assembly on all levels; a large value (greater than Order) results in fully assembled sparse matrix operators.

"QuadratureOrderJacobian" type: boolean default: false advanced

Use the Jacobian-based quadrature order instead of the default.

"QuadratureOrderExtra" type: integer default: 0 advanced

Extra quadrature order added on top of the default.

"Device" type: string default: "CPU"

The runtime device configuration passed to MFEM to activate different computation backends. When Palace is built with OpenMP support (PALACE_WITH_OPENMP=ON), omp is automatically added to the MFEM device list.

"CPU"
Run on CPU.
"GPU"
Run on GPU via CUDA (MFEM_USE_CUDA=ON) or HIP (MFEM_USE_HIP=ON).
"Debug"
MFEM debug device, useful for diagnosing GPU-related issues.
"Backend" type: string

Specifies the libCEED backend to use. If omitted, Palace selects a suitable backend based on Device.

"Eigenmode" type: object

See full reference ↓

"Driven" type: object

See full reference ↓

"Transient" type: object

See full reference ↓

"Electrostatic" type: object

See full reference ↓

"Magnetostatic" type: object

See full reference ↓

"BoundaryMode" type: object

See full reference ↓

"Linear" type: object

See full reference ↓

Eigenmode Solver

Path: /Solver/Eigenmode

type: object

Configuration for the eigenvalue solver. Only relevant when /Problem/Type is "Eigenmode".

"Target" type: number required constraint: > 0.0

(Nonzero) frequency target above which to search for eigenvalues, GHz.

"Tol" type: number default: 1.0e-6 constraint: ≥ 0.0

Relative convergence tolerance for the eigenvalue solver.

"MaxIts" type: integer constraint: > 0

Maximum number of iterations for the iterative eigenvalue solver. If omitted, Palace uses 1,000,000 iterations.

"MaxSize" type: integer constraint: > 0

Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses max(2 × N, N + 15).

"N" type: integer default: 1 constraint: > 0

Number of eigenvalues to compute.

"Save" type: integer default: 0

Number of computed field modes to save to disk for visualization with ParaView. Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output.

"Type" type: string

Specifies the eigenvalue solver backend.

"Default"
Use Palace's default backend selection for the available build.
"SLEPc"
Use the SLEPc eigensolver backend.
"ARPACK"
Use the ARPACK eigensolver backend.
"PEPLinear" type: boolean default: true advanced

Linearize the polynomial eigenvalue problem before solving.

"Scaling" type: boolean default: true advanced

Enable scaling of the eigenvalue problem.

"StartVector" type: boolean default: true advanced

Use a random start vector for the eigensolver.

"StartVectorConstant" type: boolean default: false advanced

Use a constant start vector instead of a random one.

"MassOrthogonal" type: boolean default: false advanced

Orthogonalize eigenvectors with respect to the mass matrix.

"NonlinearType" type: string default: "Hybrid"

Specifies the nonlinear eigenvalue solver for problems with frequency-dependent boundary conditions.

"Hybrid"
Use the hybrid nonlinear eigensolver strategy.
"SLP"
Use the successive linear problems nonlinear eigensolver.
"RefineNonlinear" type: boolean default: true advanced

Refine nonlinear eigenvalue solutions after the initial solve.

"LinearTol" type: number default: 0.001 constraint: ≥ 0.0 advanced

Tolerance for the inner linear solve within the nonlinear eigensolver.

"TargetUpper" type: number constraint: > 0.0 advanced

Upper frequency bound for the eigenvalue search, GHz. Only used for nonlinear problems. If omitted, Palace uses 3 × Target. An inaccurate upper bound can negatively affect convergence of the nonlinear eigensolver.

"PreconditionerLag" type: integer default: 10 constraint: ≥ 0 advanced

Number of eigensolver iterations between preconditioner updates.

"PreconditionerLagTol" type: number default: 0.0001 constraint: ≥ 0.0 advanced

Residual tolerance below which preconditioner updates are skipped.

"MaxRestart" type: integer default: 2 constraint: ≥ 0 advanced

Maximum number of restarts for the eigensolver.

Driven Solver

Path: /Solver/Driven

type: object

Configuration for the frequency domain driven solver. Only relevant when /Problem/Type is "Driven".

"MinFreq" type: number deprecated

Lower bound of the frequency sweep interval, GHz. Deprecated: use Linear Samples interface instead.

"MaxFreq" type: number deprecated

Upper bound of the frequency sweep interval, GHz. Deprecated: use Linear Samples interface instead.

"FreqStep" type: number deprecated

Frequency step size for the frequency sweep, GHz. Deprecated: use Linear Samples interface instead.

"SaveStep" type: integer default: 0 deprecated

Controls how often, in number of frequency steps, to save computed fields to disk for visualization with ParaView. Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output. Deprecated: use Linear Samples interface instead.

"Samples" type: [object, ...]

See full reference ↓

"Save" type: [number, ...]

Additional frequencies at which to save computed fields to disk for visualization with ParaView, in addition to those specified by "SaveStep". Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output.

"Restart" type: integer default: 1 constraint: > 0

1-based sample index from which to restart a partial frequency sweep (i.e. "Restart": x starts from the x-th sample of the combined sample set). Not valid for adaptive sweep.

"AdaptiveTol" type: number default: 0.0 constraint: ≥ 0.0

Relative error convergence tolerance for adaptive fast frequency sweep. A value of 0 disables adaptive sweep and the full-order model is solved at each frequency step. A positive value ensures the reduced-order model is reliable relative to the full-order model in the frequency band of interest.

"AdaptiveMaxSamples" type: number default: 20 constraint: > 0

Maximum number of frequency samples used to construct the reduced-order model for adaptive sweep, if the tolerance ("AdaptiveTol") is not met first. In simulations with multiple excitations, this is the maximum per excitation.

"AdaptiveConvergenceMemory" type: integer default: 2 constraint: > 0

Number of consecutive samples satisfying the error tolerance required to declare convergence of the adaptive sampling algorithm.

"AdaptiveGSOrthogonalization" type: string default: "CGS2" advanced

Gram-Schmidt variant for orthogonalizing the adaptive reduced-order model basis. Same options as /Linear/GSOrthogonalization.

"MGS"
Modified Gram-Schmidt.
"CGS"
Classical Gram-Schmidt.
"CGS2"
Two-step classical Gram-Schmidt with reorthogonalization.
"AdaptiveCircuitSynthesis" type: boolean default: false

Use the adaptive reduced-order model to print synthesized circuit-like matrices (L⁻¹, R⁻¹, C). Requires adaptive sweep to be enabled, all LumpedPort fields to be orthogonal, and only LRC-type frequency dependence (no WavePort, Conductivity, or second-order farfield BCs).

"AdaptiveCircuitSynthesisDomainOrthogonalization" type: string default: "Energy" advanced

Weight matrix type for domain orthogonalization when building synthesized circuit matrices.

"Energy"
Use the energy-based domain mass matrix.
"FEBasisIdentity"
Use the identity matrix in the finite element basis.
"SpaceOverlap"
Use the physical-space field overlap.

Samples

Path: /Solver/Driven/Samples

type: [object, ...]

Array of frequency sample specifications. Combined with "MinFreq"/"MaxFreq"/"FreqStep" to form a sorted, unique set of samples.

Point Samples

Path: /Solver/Driven/Samples/0

Explicit list of frequency sample points.

"Freq" type: [number, ...] required

Explicit frequencies to sample, GHz.

"Type" type: any default: "Point"
"SaveStep" type: integer default: 0

Save fields every N steps within this sample. 0 disables saving.

"AddToPROM" type: boolean default: false

Force inclusion of these points in the PROM for adaptive sweep (primarily a debugging tool).

Linear Samples

Path: /Solver/Driven/Samples/1

Linearly-spaced frequency samples.

"MinFreq" type: number required constraint: ≥ 0.0

Lower bound, GHz.

"MaxFreq" type: number required constraint: ≥ 0.0

Upper bound, GHz.

"Type" type: any default: "Linear"
"FreqStep" type: number constraint: ≥ 0.0

Step size, GHz. Mutually exclusive with "NSample".

"NSample" type: integer constraint: ≥ 0

Number of samples. Mutually exclusive with "FreqStep".

"SaveStep" type: integer default: 0

Save fields every N steps. 0 disables saving.

"AddToPROM" type: boolean default: false

Force inclusion in the PROM for adaptive sweep.

Log Samples

Path: /Solver/Driven/Samples/2

Logarithmically-spaced frequency samples.

"Type" type: any required
"MinFreq" type: number required constraint: > 0.0

Lower bound, GHz.

"MaxFreq" type: number required constraint: > 0.0

Upper bound, GHz.

"NSample" type: integer required constraint: ≥ 1

Number of samples.

"SaveStep" type: integer default: 0

Save fields every N steps. 0 disables saving.

"AddToPROM" type: boolean default: false

Force inclusion in the PROM for adaptive sweep.

Transient Solver

Path: /Solver/Transient

type: object

Configuration for the time domain driven solver. Only relevant when /Problem/Type is "Transient". Simulations always start from rest at t = 0.

"Excitation" type: string required

Controls the time dependence of the source excitation.

"Sinusoidal"
Sinusoidal source excitation.
"Gaussian"
Gaussian pulse excitation.
"DifferentiatedGaussian"
Differentiated Gaussian pulse excitation.
"ModulatedGaussian"
Gaussian-modulated sinusoidal excitation.
"Ramp"
Ramp-step excitation.
"SmoothStep"
Smooth step excitation.
"MaxTime" type: number required constraint: > 0.0

End of simulation time interval, ns.

"TimeStep" type: number required constraint: > 0.0

Uniform time step size, ns.

"Type" type: string default: "GeneralizedAlpha"

Time integration scheme for the second-order ODE system.

"Default"
Use Palace's default time integration scheme.
"GeneralizedAlpha"
Use the generalized-α time integration scheme.
"RungeKutta"
Use the Runge-Kutta time integrator.
"CVODE"
Use the CVODE time integrator.
"ARKODE"
Use the ARKODE time integrator.
"ExcitationFreq" type: number default: 0.0

Center frequency for harmonic source excitations, GHz. Only relevant when "Excitation" is "Sinusoidal", "Gaussian", "DifferentiatedGaussian", or "ModulatedGaussian".

"ExcitationWidth" type: number default: 0.0

Pulse width for Gaussian-type source excitations, ns. Only relevant when "Excitation" is "Gaussian", "DifferentiatedGaussian", "ModulatedGaussian", or "SmoothStep".

"SaveStep" type: integer default: 0

Controls how often, in number of time steps, to save computed fields to disk for visualization with ParaView. Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output.

"Order" type: integer default: 2 constraint: ≥ 2, ≤ 5

Order of adaptive Runge-Kutta integrators or maximum multistep method order, must be within [2, 5]. Only relevant when "Type" is "ARKODE" or "CVODE".

"RelTol" type: number default: 0.0001 constraint: > 0.0

Relative tolerance for adaptive time-stepping. Only relevant when "Type" is "ARKODE" or "CVODE".

"AbsTol" type: number default: 1.0e-9 constraint: > 0.0

Absolute tolerance for adaptive time-stepping. Only relevant when "Type" is "ARKODE" or "CVODE".

Electrostatic Solver

Path: /Solver/Electrostatic

type: object

Configuration for the electrostatic solver. Only relevant when /Problem/Type is "Electrostatic".

"Save" type: integer default: 0 constraint: ≥ 0

Number of computed electric field solutions to save to disk for visualization with ParaView, ordered by the entries in the computed capacitance matrix. Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output.

Magnetostatic Solver

Path: /Solver/Magnetostatic

type: object

Configuration for the magnetostatic solver. Only relevant when /Problem/Type is "Magnetostatic".

"Save" type: integer default: 0 constraint: ≥ 0

Number of computed magnetic field solutions to save to disk for visualization with ParaView, ordered by the entries in the computed inductance matrix. Files are saved in the paraview/ (and/or gridfunction/) directory under /Problem/Output.

Boundary Mode Solver

Path: /Solver/BoundaryMode

type: object

Configures the 2D boundary mode analysis solver, which computes propagation constants of guided modes on a waveguide cross-section. Used when Type is "BoundaryMode".

"Freq" type: number required constraint: > 0.0

Operating frequency for the mode analysis, GHz.

"N" type: integer default: 1 constraint: ≥ 1

Number of modes to compute.

"Save" type: integer default: 0 constraint: ≥ 0

Number of computed field modes to save to disk for visualization with ParaView. Files are saved in the paraview/ (and/or gridfunction/) directory under the directory specified by Output.

"Target" type: number constraint: > 0.0

Target effective index $n_\text{eff} = k_n / k_0$ for the eigenvalue solver shift-and-invert spectral transformation, where $k_n$ is the propagation constant of the guided mode and $k_0 = \omega / c_0$ is the free-space wavenumber. When specified, the solver searches for modes with effective index near this value. If omitted, Palace computes the shift from material properties as k_n = (ω / c_min) × sqrt(1.1), where c_min is the minimum material light speed in the solve domain.

"Tol" type: number default: 1.0e-6 constraint: > 0.0

Relative convergence tolerance for the eigenvalue solver.

"MaxSize" type: integer constraint: > 0 advanced

Maximum subspace dimension for the eigenvalue solver. If omitted, Palace uses max(2 × N, N + 15).

"Type" type: string

Specifies the eigenvalue solver to be used for the mode analysis. See Eigenmode Type.

"Default"
Use Palace's default backend selection for the available build.
"SLEPc"
Use the SLEPc eigensolver backend.
"ARPACK"
Use the ARPACK eigensolver backend.
"Attributes" type: [integer, ...]

Integer array of 3D mesh boundary attributes from which to extract a 2D cross-section submesh for the mode analysis. When specified, the input mesh must be 3D and a standalone 2D submesh is extracted from these boundary faces. When not specified, the input mesh is used directly and must be 2D.

Linear Solver

Path: /Solver/Linear

type: object

Configuration for the linear solver used by all simulation types.

"Type" type: string

Specifies the solver used for preconditioning the linear system. If omitted, Palace selects the solver based on the problem type and available sparse direct solvers.

"Default"
Use Palace's default linear preconditioner selection.
"AMS"
Use the Hypre AMS preconditioner.
"BoomerAMG"
Use the Hypre BoomerAMG preconditioner.
"MUMPS"
Use the MUMPS sparse direct solver.
"SuperLU"
Use the SuperLU_DIST sparse direct solver.
"STRUMPACK"
Use the STRUMPACK sparse direct solver.
"STRUMPACK-MP"
Use the STRUMPACK-MP sparse direct solver variant.
"Jacobi"
Use the Jacobi preconditioner.
"KSPType" type: string

Specifies the iterative Krylov subspace solver. If omitted, Palace uses CG for electrostatic, magnetostatic, and transient simulations, and GMRES otherwise.

"Default"
Use Palace's default Krylov solver for the active problem type.
"CG"
Use conjugate gradients.
"MINRES"
Use MINRES.
"GMRES"
Use GMRES.
"FGMRES"
Use flexible GMRES.
"BiCGSTAB"
Use BiCGSTAB.
"Tol" type: number default: 1.0e-6 constraint: ≥ 0.0

Relative residual convergence tolerance for the iterative linear solver.

"MaxIts" type: integer default: 100 constraint: > 0

Maximum number of iterations for the iterative linear solver.

"MaxSize" type: integer constraint: > 0

Maximum Krylov space size for GMRES/FGMRES. If omitted, Palace uses MaxIts.

"InitialGuess" type: boolean advanced

Use the previous solution as an initial guess for the iterative solver. If omitted, Palace enables this for driven simulations without adaptive frequency sweep, transient simulations, electrostatics, and magnetostatics, and disables it otherwise.

"MGMaxLevels" type: integer constraint: ≥ 1

When greater than 1, enables geometric multigrid preconditioning using p- and h-multigrid coarsening. The solver specified by "Type" is used on the coarsest level; fine levels use Chebyshev smoothing. If omitted, Palace uses 1 for boundary mode analysis (multigrid disabled) and 100 otherwise.

"MGCoarsenType" type: string default: "Logarithmic"

Coarsening strategy for constructing p-multigrid levels.

"Linear"
Use linearly decreasing polynomial order between p-multigrid levels.
"Logarithmic"
Use logarithmic polynomial-order coarsening between p-multigrid levels.
"MGUseMesh" type: boolean default: true advanced

Use the mesh hierarchy for h-multigrid coarsening.

"MGAuxiliarySmoother" type: boolean advanced

Use an auxiliary space smoother on multigrid levels. If omitted, Palace disables this by default for electrostatic and magnetostatic simulations and enables it otherwise.

"MGCycleIts" type: integer constraint: > 0

Number of V-cycle iterations per preconditioner application for multigrid preconditioners (when geometric multigrid is enabled or "Type" is "AMS" or "BoomerAMG"). If omitted, Palace uses 2 for AMS frequency-domain problems ("Type" is "AMS" for eigenmode or driven simulations) and 1 otherwise.

"MGSmoothIts" type: integer default: 1 constraint: > 0

Number of pre- and post-smooth iterations for multigrid preconditioners, when the geometric multigrid preconditioner is enabled.

"MGSmoothOrder" type: integer constraint: > 0

Polynomial smoothing order for geometric multigrid. If omitted, Palace uses max(2 × solution order, 4).

"MGSmoothEigScaleMax" type: number default: 1.0 constraint: > 0 advanced

Maximum eigenvalue scale for the Chebyshev smoother.

"MGSmoothEigScaleMin" type: number default: 0.0 constraint: ≥ 0 advanced

Minimum eigenvalue scale for the Chebyshev smoother.

"MGSmoothChebyshev4th" type: boolean default: true advanced

Use 4th-kind Chebyshev polynomial smoother.

"PCMatReal" type: boolean default: false

When true, builds the preconditioner for frequency domain problems using a real-valued approximation of the system matrix. Always used on the coarsest multigrid level regardless of this setting.

"PCMatShifted" type: boolean

When true, builds the preconditioner using a positive-definite approximation by flipping the sign of the mass matrix contribution. Can improve performance at high frequencies relative to the lowest nonzero eigenfrequencies of the model. If omitted, Palace enables this for driven simulations using AMS and for boundary mode simulations with multigrid enabled, and disables it otherwise.

"ComplexCoarseSolve" type: boolean default: false

When true, uses the true complex-valued system matrix for the coarse-level solver. When false, uses the real-valued approximation.

"DropSmallEntries" type: boolean default: false

When true, drops entries smaller than double-precision machine epsilon from the system matrix used in the sparse direct solver.

"ReorderingReuse" type: boolean default: true advanced

Reuse the matrix reordering from the previous solve.

"PCSide" type: string

Preconditioning side. If omitted, Palace uses the chosen iterative solver's preconditioning side. Not all options are available for all iterative solver choices.

"Default"
Use Palace's default preconditioning side for the chosen Krylov solver.
"Right"
Use right preconditioning.
"Left"
Use left preconditioning.
"ColumnOrdering" type: string advanced

Column ordering algorithm for sparse direct solvers. If omitted, Palace uses the sparse direct solver's default ordering.

"Default"
Use the sparse direct solver's default column ordering.
"METIS"
Use METIS column ordering.
"ParMETIS"
Use ParMETIS column ordering.
"Scotch"
Use Scotch column ordering.
"PTScotch"
Use PT-Scotch column ordering.
"PORD"
Use PORD column ordering.
"AMD"
Use AMD column ordering.
"RCM"
Use reverse Cuthill-McKee ordering.
"STRUMPACKCompressionType" type: string default: "None" advanced

STRUMPACK compression type.

"None"
Disable low-rank compression.
"BLR"
Use block low-rank compression.
"HSS"
Use hierarchically semi-separable compression.
"HODLR"
Use hierarchically off-diagonal low-rank compression.
"ZFP"
Use ZFP lossy compression.
"BLR-HODLR"
Use the BLR-HODLR hybrid compression mode.
"ZFP-BLR-HODLR"
Use the ZFP-BLR-HODLR hybrid compression mode.
"STRUMPACKCompressionTol" type: number default: 0.001 constraint: ≥ 0.0 advanced

Tolerance for STRUMPACK lossy compression.

"STRUMPACKLossyPrecision" type: integer default: 16 constraint: ≥ 0 advanced

Precision bits for STRUMPACK ZFP lossy compression.

"STRUMPACKButterflyLevels" type: integer default: 1 constraint: ≥ 0 advanced

Number of butterfly levels for STRUMPACK HODLR compression.

"SuperLU3DCommunicator" type: boolean default: false advanced

Use a 3D process grid communicator for SuperLU_DIST.

"AMSVectorInterpolation" type: boolean default: false advanced

Use vector interpolation in AMS.

"AMSSingularOperator" type: boolean advanced

Indicate to AMS that the operator is singular (e.g. magnetostatics with no essential boundary conditions). If omitted, Palace enables this for magnetostatic simulations and disables it otherwise.

"AMGAggressiveCoarsening" type: boolean advanced

Enable aggressive coarsening in BoomerAMG. If omitted, Palace enables this for electrostatic, magnetostatic, and transient simulations, and disables it otherwise.

"AMSMaxIts" type: integer constraint: > 0

Number of AMS iterations per preconditioner application when geometric multigrid is enabled ("MGMaxLevels" > 1). If omitted, Palace uses /Solver/Order.

"DivFreeTol" type: number default: 1.0e-12 constraint: ≥ 0.0

Relative tolerance for divergence-free cleaning used in the eigenmode simulation type. Ignored when a nonzero Floquet wave vector is specified or when a nonzero LondonDepth is used.

"DivFreeMaxIts" type: integer default: 1000 constraint: ≥ 0

Maximum number of iterations for divergence-free cleaning. Ignored under the same conditions as "DivFreeTol".

"EstimatorTol" type: number default: 1.0e-6 constraint: ≥ 0.0

Relative tolerance for the flux projection solve used in the error estimate calculation.

"EstimatorMaxIts" type: integer default: 10000 constraint: ≥ 0

Maximum number of iterations for the flux projection solve used in the error estimate calculation.

"EstimatorMG" type: boolean default: false

When true, uses a multigrid preconditioner with AMG coarse solve for the error estimator linear solver instead of Jacobi.

"GSOrthogonalization" type: string default: "MGS" advanced

Gram-Schmidt variant used to orthogonalize vectors in Krylov subspace methods and other parts of the solver.

"MGS"
Modified Gram-Schmidt.
"CGS"
Classical Gram-Schmidt.
"CGS2"
Two-step classical Gram-Schmidt with reorthogonalization.