Mortar#
The mortar section is used when simulating rotor-stator geometries, in which the rotor mesh is attached to the stator by mortar elements.
subsection mortar
set enable = true
set interface type = circular
subsection mesh
set type = dealii
set grid type = subdivided_hyper_rectangle
set grid arguments = 1,1,1 : -1,-1,-1 : 1,1,1 : true
set initial refinement = 0
end
set rotor boundary id = 4
set stator boundary id = 2
set center of rotation = 0, 0
set rotation axis = 0, 0, 1
subsection rotor rotation angle
set Function expression = 0
end
subsection rotor angular velocity
set Function expression = 0
end
set penalty factor = 1.0
set oversampling factor = 2
set radius tolerance = 1e-8
set verbosity = quiet
end
The available options for the mortar
interface typearecircularandlinear.
Warning
The linear interface type supports only two-dimensional problems. It assumes that the domain is rectangular, and that the mortar interface is parallel to the y axis.
The mesh parameters in the Mesh subsection refer to the stator domain. The
meshsubsection herein mentioned contains the parameters of the rotor domain; nonetheless, the input format is the same as in Mesh.
Note
The initial number of cells at the rotor-stator interface has to be the same; the simulation will be aborted if that is not respected. This restriction will be automatically constrained throughout the simulation if the mesh is refined.
The
rotor boundary idandstator boundary idrefer to the boundary index at the rotor-stator interface.
Warning
In dealii meshes the boundary IDs are automatically assigned to the geometries using the deal.II colorization function, and thus the rotor/stator IDs might be duplicated.
To circumvent this, the rotor boundary IDs are shifted. The rotor boundary id entry refers to the shifted ID number, assuming that the enumeration starts sequentially from the last entry of the stator boundary IDs.
The
center of rotationis the reference point for the prescribed rotation at the rotor domain.The
rotation axisis the unit vector that defines the rotor axis of rotation.The
rotor rotation anglesubsection allows the imposition of a constant or time-dependent rotation angle for the rotor.The
rotor angular velocitysubsection allows the imposition of a constant or time-dependent angular velocity for the rotor.
Warning
The rotor angular velocity expression needs to correspond to the time derivative of the rotor rotation angle.
The
penalty factoris used for the weak imposition of the mortar coupling at the interface. This parameter is akin to the symmetric interior penalty factor in SIPG (Symmetric Interior penalty Galerkin Method) [1].The
oversampling factoris used to increase the number of quadrature points. This feature is used to better approximate the weak imposition of the interface coupling.When computing the rotor-stator interface radius, the radial distance of every node at both rotor and stator boundaries to the
center of rotationis computed, and the following check is performed:
where \(r_{max}\), \(r_{min}\) are the maximum and minimum values obtained, respectively, and \(tol\) is the prescribed radius tolerance parameter.
Note
The default value for radius tolerance is \(10^{-8}\), which should cover the precision range of deal.II-generated grids. The tolerance might need to be increased for some gmsh mesh type cases or for large simulations running in multiple cores, when the above verification fails even if the mesh discretization is coherent.
When enabling
verbosity(set verbosity = verbose), the rotor rotation information is printed at every iteration. The optionextra verbosealso prints the workload imbalance of mortar cells. We consider that an ideal work imbalance is given by:
where \(n_{proc}\) is the total number of processes and \(cells_{(i)}\) is the number of cells at each process \(i\). The actual workload imbalance is given by the ratio between the maximum number of cells in a processor, \(cells_{(max)}\), and the ideal workload:
Ideally, this parallel distribution imbalance is equal to 1; values greater than 1 indicate a slowdown compared to a perfectly distributed scenario in which all processes would contain the same number of mortar cells.
See also
The workload imbalance computation used here follows the same idea as the deal.II workload_imbalance() function used in the geometric multigrid setup, enabled in the Linear Solver when set preconditioner = gcmg and set mg verbosity = extra verbose.