► 5.6 Mesh Modification
 5.6.1 Mesh Smoothing 5.6.1.5 Adjust Boundary Orthogonal 5.6.1.6 Centroid Area Pull 5.6.1.7 Condition Number 5.6.1.8 Edge Length 5.6.1.9 Equipotential 5.6.1.10 Laplacian 5.6.1.11 Mean Ratio 5.6.1.12 Smart Laplacian 5.6.1.13 Untangle 5.6.1.14 Winslow 5.6.2 Align Mesh 5.6.3 Block Repositioning 5.6.4 Collapsing Mesh 5.6.5 Creating and Merging Mesh Elements 5.6.6 Edge Swapping 5.6.7 Matching Tetrahedral Meshes 5.6.8 Mesh Cleanup 5.6.9 Mesh Coarsening 5.6.10 Mesh Column Operations 5.6.11 Mesh Refinement 5.6.12 Mesh Scaling for Flexible Hex Refinement 5.6.13 Node and Nodeset Repositioning 5.6.14 Mesh Pillowing 5.6.15 Remeshing 5.6.16 Hexset Command
2022.4+26187-e1209cf7 Apr 14, 2022

#### 5.6Mesh Modification

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

After meshing is completed, it may be desirable to change features of the mesh without remeshing the whole volume. Mesh modification methods include tools for improving mesh quality, repositioning mesh elements, or changing mesh density. These methods can be applied on the whole model, or on small sections of the model without requiring remeshing the geometry, and without modifying the underlying geometry.

##### 5.6.1Mesh Smoothing

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

After generating the mesh, it is sometimes necessary to modify that mesh, either by changing the positions of the nodes or by removing the mesh altogether. Cubit contains a variety of mesh smoothing algorithms for this purpose. Node positions can also be fixed, either by specific node or by geometry entity, to restrict the application of smoothing to non-fixed nodes.

Mesh smoothing in Cubit operates in a similar fashion to mesh generation, i.e. it is a process whereby a smooth scheme is chosen and set, then a smooth command performs the actual smoothing. Like meshing algorithms, there is a variety of smoothing algorithms available, some of which apply to multiple geometry entity types and some which only apply to one specific type (these algorithms are described below.)

To smooth the mesh on a geometry entity

1. On the Command Panel, click on Mesh.

2. Click on Volume, Surface or Curve.

3. Click on the Smoothing action button.

4. Select the desired scheme from the drop-down menu.

5. Enter the appropriate values for Volume ID(s), Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.

6. Depending on the scheme selected, optionally specify the Tolerance.

7. Enter any other appropriate settings.

8. Click Apply.

{curve|surface|volume} <range> Smooth Scheme <scheme>

where <scheme> is any acceptable smooth scheme described in this section. Also set any scheme-specific information, using the smooth scheme setting commands described below.

smooth curve <range>

smooth surface <range> [global]

smooth {body|volume|group} <range>

Groups of entities may be smoothed, by smoothing a group or a body.

If a Body is specified, the volumes in that Body are smoothed. If a Group is specified, only the volume meshes within these groups are smoothed - no smoothing of the surface meshes is performed.

##### 5.6.1.1Global Smoothing

When smoothing a set of surfaces, the keyword global can be added to the smooth command such as

smooth surface <range> [global]

If the smoothing algorithm for two neighboring surfaces are both allowed to move boundary nodes, then appending the "global" keyword will often result in a higher quality mesh near the curve(s) shared by those two surfaces.

##### 5.6.1.2Focused Smoothing on Groups of Mesh Entities

Meshed entities such as hexes or tris can be smoothed individually or in groups by specifying the entities in a list.

To smooth hexes and tets

1. On the Command Panel, click on Mesh.

2. Click on Hex or Tet.

3. Click on the Smooth action button.

4. Enter the appropriate value for Hex ID(s) or Tet ID(s). This can also be done using the Pick Widget function.

5. Optionally, specify the scheme.

6. Click Apply.

To smooth quads, tris and edges

1. On the Command Panel, click on Mesh.

2. Click on Quad, Tri or Edge.

3. Click on the Smooth action button.

4. Enter the appropriate value for Quad ID(s), Tri ID(s) or Edge ID(s). This can also be done using the Pick Widget function.

5. Optionally, specify the scheme.

6. Enter the appropriate value for Target Surface ID or Target Curve ID. This can also be done using the Pick Widget function.

7. Click Apply.

Smooth {Hex|Tet} <range>[Scheme {Equipotential|Laplacian|Random}]

Smooth {Face|Tri} <range>[Scheme {Laplacian|Centroid|Winslow}] [Target Surface <id>]

Smooth Edge <id_range> [Scheme Laplacian] [Target Surface <id>]

The smooth edge command allows the user to smooth individual edges owned by a curve. Specifying a target curve allows the user to move the edges on a meshed curve to a different curve. The target curve or surface does not necessarily need to be the owning curve or surface of the nodes. For example, if given two curves (A and B) and curve A was meshed, the target smoothing could be used to move all of the edges of curve A onto curve B. The smooth scheme option for the edge smoothing is currently limited only to the laplacian scheme.

The smooth face|tri command is used to smooth individual faces or triangles. The target option is similar to the curve target option above. Faces or Tris can be smoothed to a surface that is not necessarily the owning surface; in fact, the faces or tris do not even have to be attached to any surface. This makes this option especially helpful for smoothing free meshes. Specifying a smooth scheme allows for relaxation based surface smoothers (i.e. centroid area pull, laplacian, winslow) to be utilized during targeted smoothing. It is not currently enabled for optimization based smoothing schemes.

##### 5.6.1.3Smooth Tolerance

Smoothing algorithms move nodes in an attempt to improve the quality of the mesh elements. Most of these algorithms are iterative, and the algorithm terminates when some criterion is met. Specifically, for the Laplacian and Equipotential style smoothers, smoothing is terminated either by satisfying a smoothing tolerance or by performing the maximum number of smoothing iterations. For these smoothers, the smooth tolerance may be set by the user:

[Set] Smooth Tolerance <tol>

The value <tol> tells the smoother to stop when node movement is less than tol * local_minimum_edge_length.

The default value for tol is 0.05. The maximum number of iterations may be set by the user. For volumes, the smooth tolerance and iterations may also be set by

(Note: The above command affects all smoother that respect tolerance.)

Volume Smooth Tolerance <tol>

Volume Smooth Iterations <iters>

(Note: The above two commands only affect the volume smoothers.)

##### 5.6.1.4Boundary Mesh Smoothing

Where used in the smooth schemes below, the Free keyword permits the nodes lying on the bounding entities to "float" along those entities; without this keyword, boundary nodes remain fixed.

Nodal positions may be fixed so that no smoothing scheme, either implicit or explicit, will move them, with the following command:

{Curve|Surface|Volume} <range> Node Position {Fixed|Free}

Node <range> Position {Fixed|Free}

The following command does not fix nodal positions, but does fix the connectivity of the mesh, preventing certain volume schemes from changing the bounding mesh:

{Curve|Surface|Volume} Mesh {Fixed|Free}

The additional following scheme is available for research purposes and can be used only after issuing a set developer on command.

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Surface Meshes

Summary: This smoother creates a near orthogonal grid and optionally will make an orthogonal grid if the geometry permits.

1. On the Command Panel, click on Mesh and then Surface.

2. Click on the Smooth action button.

3. Select Orthogonal from the drop-down menu.

4. Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

5. Optionally enter in the appropriate settings for Normal to Curve and Fix Nodes On Curve.

6. Click Apply.

adjust boundary [orthogonal] {surface|group} <id_range> [Iterations <val>] [snap_to_normal [curve <id>] [fixed curve <id>]]

Discussion:

Adjust Boundary Orthogonal iteratively applies the centroidal area pull algorithm with free boundary nodes. This approximates the affects of an elliptical smoothing algorithm. This algorithm works best with mapped meshes which have an element aspect ratio close to 1. The snap_to_normal option is not allowed for non-mapped meshes.

Figure 374:

Figure 375:

Figure 1. The affect of the "adjust boundary orthogonal surface 1" on a chevron shape. Note that the nodes are pulled into the acute angles and the edges at the boundary are pulled into a position that is closer to perpendicular at the boundary.

With some geometries with a mapped mesh it is possible to draw a line that is orthogonal to a boundary curve along the entire u or v direction of the mesh. In these cases, this command optionally allows the user to specify the option snap_to_normal. Nodal lines will be created normal to the first curve this is found that will allow perpendicular element edges to span the mesh. The user may optionally specify a curve that is used as the perpendicular basis for projecting the edges.

An edge may also be set as fixed so that a subsequent adjust boundary orthogonal will not affect that edge. If both snap_to_normal and fixed are set, the curve ids MUST be identical.

Figure 376:

Figure 377:

Figure 2. The affect of adjust boundary orthogonal with the snap to normal curve option is shown. The resulting mesh is orthogonal to the given boundary and projects straight through the mesh.

The following is an example of how to use this command to create the desired grid in Cubit. Note that to get the desired orthogonal grid the user must adjust the surfaces one at a time.

reset
imprint volume 1with position 0 1 0
create curve offset curve 2 distance 1 extended
create curve offset curve 4 distance 2 extended
create surface skin curve 2 4
create surface skin curve 4 5
delete surface 1
merge all
surface all scheme map
mesh surf all
adjust boundary orthogonal surface 2 snap_to_normal curve 6
adjust boundary orthogonal surface 3snap_to_normal curve 4 fixed curve 4

##### 5.6.1.6Centroid Area Pull

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Surface Meshes

Summary: Attempts to create elements of equal area

To create elements of equal area

1. On the Command Panel, click on Mesh and then Surface.

2. Click on the Smooth action button.

3. Select Centroid Area from the drop-down menu.

4. Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

5. Click Apply.

Surface <range> Smooth Scheme Centroid Area Pull [Free]

Discussion:

This smooth scheme attempts to create elements of equal area. Each node is pulled toward the centroids of adjacent elements by forces proportional to the respective element areas (Jones, 74).

##### 5.6.1.7Condition Number

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Triangular or Quadrilateral Surface Meshes, Tetrahedral or Hexahedral Volume Meshes. Does not apply to Mixed Element Meshes.

Summary: Optimizes the mesh condition number to produce well-shaped elements.

To use the condition number smoother

1. On the Command Panel, click on Mesh and then Surface.

2. Click on the Smooth action button.

3. Select Condition Number from the drop-down menu.

4. Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

5. Enter in the appropriate settings for Condition Number and Time (minutes).

6. Click Apply.

Surface <surface_id_range> Smooth Scheme Condition Number [beta <double=2.0>] [cpu <double=10>]

Related Commands:

Untangle

Discussion:

The condition number smoother is designed to be the most robust smoother in Cubit because it guarantees that if the initial mesh is non-inverted then the smoothed mesh will also be non-inverted. The price exacted for this capability is that this smoother is not as fast as some of the other smoothers.

Condition Number measures the distance of an element from the set of degenerate (non-convex or inverted) elements. Optimization of the condition number increases this distance and improves the shape quality of the elements. Condition number optimization requires that the given mesh contain no negative Jacobians. If the mesh contains negative Jacobians and this command is issued, Cubit automatically calls the Untangle smoother and attempts to remove the negative Jacobians. If successful, condition number smoothing occurs next; the resulting mesh should have no negative Jacobians. If untangling is unsuccessful, condition number smoothing is not performed.

There is no "fixed/free" option with this command; boundary nodes are always held fixed.

The command above only sets the smoothing scheme; to actually smooth the mesh one must subsequently issue the command "smooth surface <surface_id_range>" or "smooth volume <volume_id_range>".

Stopping Criteria: Smoothing will proceed until the objective function has been minimized or until one of two user input stopping criteria are satisfied. To input your own stopping criterion use the optional parameters ’beta’ and ’cpu’ in the command above. The value of beta is compared at each iteration to the maximum condition number in the mesh. If the maximum condition number is less than the value of beta, the iteration halts. In Cubit condition number ranges from 1.0 to infinity, with 1.0 being a perfectly shaped element. Thus the smaller the maximum condition number, the better the mesh shape quality. The default value of the beta parameter is 2.0. The value supplied for the "cpu" stopping criterion tells the code how many minutes to spend trying to optimize the mesh. The default value is 10 minutes. Optimization may also be halted by using "control-C" on your keyboard.

To view a detailed report of the smoothing in progress issue the command "set debug 91 on" prior to smoothing the surfaces or volumes. You will get a synopsis of whether or not untangling is needed first and whether the stopping criteria have been satisfied. In addition the following printout information is given for each iteration of the conjugate gradient numerical optimization:

iteration=n, evals=m, fcn=value1, dfmax=value2, time=value3 ave_cond=value4, max_cond=value5, min_jsc=value6

n is the iteration count, m is the number of objective function evaluations performed per iteration, value1 is the value of the objective function (this usually decreases monotonically), value2 is the norm of the gradient (does not always decrease monotonically), and value3 is the cumulative cpu time (in seconds) spent up to the current iteration. The minimum possible value of the objective function is zero but this is attained only for a perfect mesh. ave_cond, max_cond, and min_jsc are the average and maximum condition number, and the minimum scaled jacobian. ave_cond generally decreases monotonically because it is directly related to value1.

##### 5.6.1.8Edge Length

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Surfaces

Summary: This smoother tries to make all edge lengths equal

To use edge length smoothing

1. On the Command Panel, click on Mesh and then Surface.

2. Click on the Smooth action button.

3. Select Edge Length from the drop-down menu.

4. Enter in the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

5. Click Apply.

Surface <range> Smooth Scheme Edge Length

Discussion:

Edge Length smoothing in Cubit is provided by MESQUITE, a mesh optimization toolkit by Argonne National Laboratory and Sandia National Laboratories. (See Brewer, et al. 2003 for more details on the MESQUITE toolkit.) This smooth scheme may be useful for lengthening the shortest edge length in paved meshes.

Interior node positions are adjusted in an optimization loop where the optimal element has an ideal shape (square) and has an area equal to the average element area of the input mesh.

NOTE: This smoother should be avoided when the mesh contains high aspect-ratio elements that the user wants to keep.

Because this smoother essentially tries to make all the edge lengths equal, it is designed to work well on meshes whose elements have aspect ratios close to 1. The farther from 1 the aspect ratio is, the less applicable this smoother will be.

##### 5.6.1.9Equipotential

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Volume Meshes

Summary: Attempts to equalize the volume of elements attached to each node

To use edge length smoothing

1. On the Command Panel, click on Mesh and then Volume.

2. Click on the Smoothing action button.

3. Select Equipotential from the drop-down menu.

4. Enter in the appropriate values for Volume ID(s). This can also be done using the Pick Widget function.

5. Optionally, select Specify Tolerance to set a specific Tolerance value.

6. Click Apply.

Volume <range> Smooth Scheme Equipotential [Free]

Discussion:

This smoother is a variation of the Equipotential (Jones, 74) algorithm that has been extended to manage non-regular grids (Tipton, 90). This method tends to equalize element volumes as it adjusts nodal locations. The advantage of the equipotential method is its tendency to "pull in" badly shaped meshes. This capability is not without cost: the equipotential method may take longer to converge or may be divergent. To impose an equipotential smooth on a volume, each element must be smoothed in every iteration–a typically expensive computation. While a Laplacian method can complete smoothing operations with only local nodal calculations, the equipotential method requires complete domain information to operate.

##### 5.6.1.10Laplacian

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Curve, Surface, and Volume meshes

Summary: Tries to make equal edge lengths

To use laplacian smoothing

1. On the Command Panel, click on Mesh.

2. Click on Volume, Surface or Curve.

3. Click on the Smoothing action button.

4. Select Laplacian from the drop-down menu.

5. Enter in the appropriate values for Volume ID(s), Surface ID(s) or Curve ID(s). This can also be done using the Pick Widget function.

6. Optionally, select Specify Tolerance to set a specific Tolerance value.

7. Click Apply.

{Surface|Volume} <range> Smooth Scheme Laplacian [Free] [Global]

Discussion:

The length-weighted Laplacian smoothing approach calculates an average element edge length around the mesh node being smoothed to weight the magnitude of the allowed node movement (Jones, 74). Therefore this smoother is highly sensitive to element edge lengths and tends to average these lengths to form better shaped elements. However, similar to the mapping transformations, the length-weighted Laplacian formulation has difficulty with highly concave regions.

Currently, the stopping criterion for curve smoothing is 0.005, i.e., nodes are no longer moved when smoothing moves the node less than 0.005 * the minimum edge length. The maximum number of smoothing iterations is the maximum of 100 and the number of nodes in the curve mesh. Neither of these parameters can currently be set by the user.

Using the global keyword when smoothing a group of surfaces will allow smoothing of mesh on shared curves to improve the quality of elements on both surfaces sharing that curve.

##### 5.6.1.11Mean Ratio

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Triangular or Quadrilateral Surface Meshes, Tetrahedral or Hexahedral Volume Meshes. Does not apply to Mixed Element Meshes.

Summary: Moves interior mesh nodes to optimize the average mean ratio metric value of the mesh.

To use mean ratio smoothing

1. On the Command Panel, click on Mesh.

2. Click on Volume or Surface.

3. Click on the Smoothing action button.

4. Select Mean Ratio from the drop-down menu.

5. Enter in the appropriate values for Volume ID(s) or Surface ID(s). This can also be done using the Pick Widget function.

6. Enter the appropriate value for Time (minutes).

7. Click Apply.

Surface <surface_id_range> Smooth Scheme Mean Ratio [cpu <double=10>]

Volume <volume_id_range> Smooth Scheme Mean Ratio [cpu <double=10>]

Discussion:

Cubit includes a mean ratio smoother provided by MESQUITE, a mesh optimization toolkit by Argonne National Laboratory and Sandia National Laboratories. (See Brewer, et al. 2003 for more details on the MESQUITE toolkit.) This smoother is similar in purpose to the Condition Number smoother. However, the Mean Ratio smoother uses a second order optimization method, and therefore it will often reach a near-optimal mesh more quickly than the Condition Number smoother. The Mean Ratio smoother requires the initial mesh to be untangled, but the smoother is guaranteed to not tangle the mesh. If the user attempts to call the Mean Ratio smoother on a tangled mesh, an untangler will first attempt to untangle the mesh before calling the Mean Ratio smoother.

The Mean Ratio smoother’s optimization process terminates when one of the following three criteria is met:

1. The mesh is "close" to an optimal mesh configuration.

2. The maximum allotted time has been exceeded.

3. The user interrupts the smoothing process.

The user has control over the second and the third criteria only. For criterion 2, the default is for the smoother to terminate after ten minutes even if a near-optimal mesh has not been reached. The user can change this time bound by specifying the optional "cpu" argument in the command listed above. This argument takes a single, positive number that represents the time (in minutes) that will be used as a time bound. If the user wishes to terminate the process early, criteria three allows the user to "interrupt" (for example, on some platforms, by pressing CTRL-C) the process. If the process is terminated early, the mesh will not revert to the original node positions; Cubit will instead keep the partially optimized mesh.

##### 5.6.1.12Smart Laplacian

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Surface and Volume meshes

Summary: Tries to make equal edge lengths while ensuring no degradation in element shape

To use smart laplacian smoothing

1. On the Command Panel, click on Mesh.

2. Click on Volume or Surface.

3. Click on the Smoothing action button.

4. Select Smart Laplacian from the drop-down menu.

5. Enter in the appropriate values for Volume ID(s) or Surface ID(s). This can also be done using the Pick Widget function.

6. Click Apply.

{Surface|Volume} <range> Smooth Scheme Smart Laplacian

Discussion:

The Smart Laplacian smoothing approach is a variation on the standard Laplacian algorithm. The algorithm iteratively loops over the mesh and updates nodes based on the location of their neighbors. First, a patch of elements is formed around a given node. The quality of this patch is assessed to determine the quality of the worst shaped element. Then a new candidate node position is calculated as the average of the neighboring nodes. The quality of the patch is assessed again using the candidate node position. If there has been no degradation in the quality of the elements in the patch, the candidate node position is accepted; otherwise, the candidate node position is rejected and the node is returned to its previous position.

The Smart Laplacian smoother is intended to provide a reliable smoother that is nearly as fast as the Length-Weighted Laplacian smoother. Due to the dual goals of this smoother, making equal edge length and improving element shape, it will not always be able to make progress. However, it is often useful as a quick alternative to the more time-consuming optimization methods like Mean Ratio or Condition Number. When this smoother fails to make significant progress, the optimization methods can be tried.

The Smart Laplacian Smoother uses the Mean Ratio quality measure to assess element shape. This smoother is ensuring no degradation in the minimum Mean Ratio. The Mean Ratio smoother is optimizing the same metric, but it is attempting to improve the average Mean Ratio quality.

##### 5.6.1.13Untangle

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Triangular or Quadrilateral Surface Meshes Tetrahedral or Hexahedral Volume Meshes. Does not apply to Mixed Element Meshes.

Summary: Removes as many negative Jacobians from the mesh as possible by minimizing a certain objective function.

To use untangle smoothing

1. On the Command Panel, click on Mesh.

2. Click on Volume or Surface.

3. Click on the Smoothing action button.

4. Select Untangle from the drop-down menu.

5. Enter in the appropriate values for Volume ID(s) or Surface ID(s). This can also be done using the Pick Widget function.

6. Enter the appropriate values for Scaled Jacobian and Time (minutes).

7. Click Apply.

Surface <surface_id_range> Smooth Scheme Untangle [beta <double=0.02>] [cpu <double=10>]

Volume <volume_id_range> Smooth Scheme Untangle [beta <double=0.02>] [cpu <double=10>]

Related Commands:

Condition Number

Discussion:

The Untangle ’smoother’ is designed to eliminate negative Jacobians from a given mesh by moving nodes to appropriate locations. If a mesh node is not involved in causing a negative Jacobian it will not be moved. If a mesh has no negative Jacobians, the Untangler will not move any of the nodes. This smoother is not magic: if an untangled mesh does not exist for the given mesh topology, the untangler will not untangle the mesh. Instead, it will do the best it can and exit gracefully. An untangled mesh produced by this smoother will often have poor shape quality; in that case it is recommended that untangling be followed by condition number smoothing. The untangle smoother is automatically called by the condition number smoother.

There is no "fixed/free" option with this command; boundary nodes are always held fixed. As a result, users should be aware that the volume untangler cannot succeed if the volume contains a surface mesh which contains a negative Jacobian. In that case, one must first remove the surface mesh negative Jacobians by invoking the surface Untangler and then invoke the volume Untangler.

The command above only sets the smoothing scheme; to actually smooth the mesh one must subsequently issue the command smooth surface <surface_id_range> or smooth volume <volume_id_range>.

Stopping Criteria: Untangling will proceed until the objective function has been minimized or the optional user input cpu has been satisfied. The latter stopping criterion tells the code how many minutes to spend trying to untangle the mesh. The default value is 10 minutes. Optimization may also be halted by using "control-C" on your keyboard.

Beta Parameter: An optional user input parameter beta plays a role in determining the optimal mesh. Optimization proceeds until the minimum scaled Jacobian of the mesh is (roughly) greater than beta. To remove negative Jacobians one would need beta=0 (however, as a safety margin, we choose beta=0.02 as the default). To further improve the scaled Jacobian of the mesh, input a larger value of "beta". If a mesh with all scaled Jacobians greater than "beta" does not exist, optimization will continue until the cpu time stopping criterion has been met. Therefore, it is best not to use "beta" values too large (say, greater than 0.2) without also decreasing the cpu time limit.

To view a detailed report of the smoothing in progress issue the command "set debug 91 on" prior to smoothing the surfaces or volumes. You will get a synopsis of whether or not untangling is needed and whether the stopping criteria are satisfied. In addition the following printout information is given for each iteration of the conjugate gradient numerical optimization:

Iteration=n, Evals=m, Fcn=value1, dfmax=value2, time=value3 min_jsc=value4

n is the iteration count, m is the number of objective function evaluations performed per iteration, value1 is the value of the objective function (this usually decreases monotonically), value2 is the norm of the gradient (does not always decrease monotonically), and value3 is the cumulative cpu time (in seconds) spent up to the current iteration. The minimum possible value of the objective function is zero; this value is attained only when the minimum scaled Jacobian of the mesh exceeds "beta". The minimum scaled jacobian is also reported.

##### 5.6.1.14Winslow

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

Applies to: Surface meshes

Summary: Elliptic smoothing technique for structured and unstructured surface meshes

To use winslow smoothing

1. On the Command Panel, click on Mesh and then Surface.

2. Click on the Smooth action button.

3. Select Winslow from the drop-down menu.

4. Enter the appropriate values for Surface ID(s). This can also be done using the Pick Widget function.

5. Click Apply.

Surface <range> Smooth Scheme Winslow [Free]

Discussion:

Winslow elliptic smoothing (Knupp, 98) is based on solving Laplaces equation with the independent and dependent variables interchanged. The method is widely used in conjunction with the mapping and submapping methods to give smooth meshes with positive Jacobians, even on non-convex two-dimensional regions. The method has been extended in Cubit to work on unstructured meshes.

##### 5.6.2Align Mesh

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limits_{#1}} \newcommand{\IntInline}[2]{\int_{#1}^{#2}} \newcommand{\IntDomainInline}[1]{\int_{#1}} \newcommand{\DetJacobian}{\Det{\Jac}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Numerical Analysis %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BigO}[1]{\mathcal{O}\left(#1\right)} \newcommand{\Flops}{\operatorname{flops}} \newcommand{\Interpolant}[2]{\mathcal{#1}^{h}} \newcommand{\ErrorApproxComp}{e} \newcommand{\ErrorApproxTen}{\Vec{\ErrorApproxComp}} \newcommand{\ErrorNewton}{\epsilon} % clean up \newcommand{\ApproximateIntegrationError}[1]{\tilde{e}_{#1}} \newcommand{\AnalyticApproximateIntegrationErrorDifference}[1]{\overbar{e}_{#1}}$$\newcommand{\GlosOne}{a} \newcommand{\DimId}{k} \newcommand{\DimIdAlt}{n} \newcommand{\ArbDim}{\DimId} \newcommand{\ArbDimAlt}{\DimIdAlt} \newcommand{\DimIdSet}{\Set{\DimId}} \newcommand{\DimIdOne}{\DimId_0} \newcommand{\DimIdTwo}{\DimId_1} \newcommand{\DimIdThree}{\DimId_2} \newcommand{\NumUsplineBasisFuncsOnMeshBezier}{\Size{\UsplineBasisFuncSetOnMeshBezier}} \newcommand{\NumUsplineBasisFuncsOnMeshUspline}{\Size{\UsplineBasisFuncSetOnMeshUspline}} \newcommand{\NumUsplineBasisFuncsOnElem}{\Size{\UsplineBasisFuncSet{\Elem}}} \newcommand{\NumBernsteinBasisFuncsOnMeshBezier}{\Size{\IndexSetOnMeshBezier}} \newcommand{\NumBernsteinBasisFuncsOnElem}{\Size{\IndexSet{\Elem}}} \newcommand{\NumElemsInMeshBezier}{\Size{\CellSet{\ParamDim}}} \newcommand{\ParentDomain}{\SymbolParentModifier{\SymbolDomain}} \newcommand{\ParentDomainChart}{\SymbolParentModifier{\Vec{\phi}}} \newcommand{\ParentDomainChartDetailed}[2]{\QuantityFunctionOf{\ParentDomainChart^{#1}}{#2}} \newcommand{\ParentDim}{\SymbolDim} \newcommand{\ParentCoord}{\xi} \newcommand{\ParentCoordVec}{\Vec{\ParentCoord}} \newcommand{\ParentS}{\ParentCoord_0} \newcommand{\ParentT}{\ParentCoord_1} \newcommand{\ParentU}{\ParentCoord_2} \newcommand{\ParentBarycentric}[1]{\ParentCoord_{#1}} \newcommand{\ParentGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParentModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParentGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParentModifier{G}}}{#1}} \newcommand{\BernsteinBasisFuncCoeff}{\SymbolArbitraryCoeffBernstein} \newcommand{\BernsteinBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffBernstein}}}{\MeshBezier}} \newcommand{\BernsteinBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffBernstein}}{\MeshBezier}} \newcommand{\BernFuncLowerDimCell}[2]{\BernsteinBasisFunc^{#1}_{#2}} \newcommand{\BernFuncInterf}[1]{\BernFuncLowerDimCell{\Interface}{#1}} \newcommand{\UsplineBasisFuncCoeff}{\SymbolArbitraryCoeffUspline} \newcommand{\UsplineBasisFuncCoeffAlt}{\SymbolArbitraryCoeffUsplineAlt} \newcommand{\UsplineBasisFuncCoeffsSet}{\QuantityRelatedTo{\boldsymbol{\Set{\SymbolArbitraryCoeffUspline}}}{\MeshUspline}} \newcommand{\UsplineBasisFuncCoeffsVec}{\QuantityRelatedTo{\Vec{\SymbolArbitraryCoeffUspline}}{\MeshUspline}} \newcommand{\BernsteinBasisFuncId}{\BasisFuncId} \newcommand{\BernsteinBasisFuncIdAlt}{\BasisFuncIdAlt} \newcommand{\BernsteinBasisFuncIdAltAlt}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdB}{\BasisFuncIdAltAlt} \newcommand{\BernsteinBasisFuncIdOne}{\BernsteinBasisFuncId_0} \newcommand{\BernsteinBasisFuncIdTwo}{\BernsteinBasisFuncId_1} \newcommand{\BernsteinBasisFuncIdSet}{\Set{\BernsteinBasisFuncId}} \newcommand{\BernsteinBasisFuncIndexTuple}{\BernsteinBasisFuncIdSet} \newcommand{\BernsteinBasisFuncIndexTupleAlt}{\Set{\BernsteinBasisFuncIdAlt}} \newcommand{\BernsteinBasisFuncIndexTupleAltAlt}{\Set{\BernsteinBasisFuncIdAltAlt}} \newcommand{\ii}{\IndexOnCell{}{\BernsteinBasisFuncIndexTuple}} \newcommand{\jj}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAlt}} \newcommand{\kk}{\IndexOnCell{}{\BernsteinBasisFuncIndexTupleAltAlt}} \newcommand{\BernsteinBasisFuncIndexTupleB}{\Set{\BernsteinBasisFuncIdB}} \newcommand{\BernsteinDegree}{\PolynomialDegree} \newcommand{\BernsteinDegreeAlt}{q} \newcommand{\BernsteinDegreeTuple}{\Tuple{\BernsteinDegree}} \newcommand{\BernsteinDegreeElevMatComp}{D} \newcommand{\BernsteinDegreeElevMat}{\Mat{\BernsteinDegreeElevMatComp}} \newcommand{\CompletePolynomial}[1]{\AbsoluteValue{#1}} \newcommand{\BernsteinBasisFunc}{\SymbolBernstein} \newcommand{\BernsteinBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBernstein}}}{#2}} \newcommand{\BernsteinBasisFuncDetailed}[2]{\BernsteinBasisFunc_{#1}^{#2}} \newcommand{\BernsteinSpace}{\SpaceHilbert{\SymbolBernstein}} \newcommand{\BernsteinRestriction}[2]{#1\vert_{#2}} \newcommand{\Bezier}{B\'ezier } \newcommand{\MeshTopo}{\boldsymbol{\textsf{M}}}%changed from mathsf \newcommand{\MeshBezier}{\boldsymbol{\textsf{B}}}%changed from mathsf \newcommand{\CellArbitrary}[1]{\Set{#1}} \newcommand{\Cell}{\CellArbitrary{c}} % k-cell \newcommand{\CellAlpha}{\CellArbitrary{a}} \newcommand{\CellBeta}{\CellArbitrary{b}} \newcommand{\CellGamma}{\CellArbitrary{c}} \newcommand{\CellToTheLeft}{\CellAlpha} \newcommand{\CellToTheRight}{\CellBeta} \newcommand{\CellBoundary}[1]{\partial #1} \newcommand{\CellSet}[1]{\Set{C}^{#1}} \newcommand{\CellSetAdjacent}[2]{\QuantityFunctionOf{\Set{ADJ}^{#1}}{#2}} \newcommand{\CellSetCardinal}[1]{\QuantityFunctionOf{\Set{CRD}}{#1}} \newcommand{\CellSetSupport}[1]{\Support{#1}} \newcommand{\Elem}{\Set{E}} % d-cell \newcommand{\Interface}{\Set{I}} % (d-1)-cell \newcommand{\Smoothness}{\vartheta} \newcommand{\SmoothnessVar}{\rho} \newcommand{\SmoothnessSet}{\Set{\Smoothness}} \newcommand{\InterfaceSmoothness}[1]{\QuantityChildOf{#1}{\Smoothness}} \newcommand{\MaxPerpCont}[1]{\QuantityFunctionOf{\Smoothness^{\perp}_{\max}}{#1}} \newcommand{\Face}{\Set{f}} % 2-cell \newcommand{\Edge}{\Set{e}} % 1-cell \newcommand{\Vertex}{\Set{v}} % 0-cell \newcommand{\CodimTwoCell}{\Set{w}} % (d-2)-cell \newcommand{\KCell}{\Cell^\ArbDim} \newcommand{\KPlusOneCell}{\Cell^{\ArbDim+1}} \newcommand{\KCellAlpha}{\CellAlpha^\ArbDim} \newcommand{\KPlusOneCellBeta}{\CellBeta^{\ArbDim+1}} \newcommand{\KPlusOneCellAdjacentIndexedSubmeshDomain}{\QuantityChildOf{\CellAlpha\CellBeta}{\SubmeshDomain}} \newcommand{\MaxParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\max}}{#1}} \newcommand{\MinParallelDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\parallel}_{\min}}{#1}} \newcommand{\MaxPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\max}}{#1}} \newcommand{\MinPerpDegree}[1]{\QuantityFunctionOf{\BernsteinDegree^{\perp}_{\min}}{#1}} \newcommand{\MinParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\min}}{#1,#2}} \newcommand{\MaxParallelPerpDegree}[2]{\QuantityFunctionOf{\BernsteinDegree^{\parallel,\perp}_{\max}}{#1,#2}} \newcommand{\DegreeParallel}{\BernsteinDegree^{\parallel}} \newcommand{\DegreeParallelToEdge}[2]{\DegreeParallel_{#1}(#2)} \newcommand{\DegreePerp}{\BernsteinDegree^{\perp}} \newcommand{\DegreePerpToInterface}[2]{\DegreePerp_{#1}(#2)} \newcommand{\DegreeTupleParallelToKCell}[2]{\Tuple{\BernsteinDegree}^{\parallel}_{#1}(#2)} \newcommand{\ChangeInDegree}[2]{\Delta(\BernsteinDegree)_{#1}^{#2}} \newcommand{\IndexSet}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\CompositeBVUnionIndexSet}[1]{\QuantityFunctionOf{\Set{UID}}{#1}} \newcommand{\IndexSetPosCoeffs}[1]{\QuantityFunctionOf{\Set{ID}}{#1}} \newcommand{\IndexSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\IndexSet{}}}{#1}} \newcommand{\IndexSetOnMeshBezier}{\IndexSet{\MeshBezier}} \newcommand{\IndexOnCell}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\IndexOnCellIJ}[3]{\QuantityChildOf{#1}{\TupleRoster{#2,#3}}} \newcommand{\CellFromQuantity}[1]{\QuantityFunctionOf{\operatorname{cell}}{#1}} \newcommand{\ExtractionOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{C}}{#2}}} \newcommand{\ExtractionOpSimple}[1]{\QuantityFunctionOf{\Mat{C}}{#1}} \newcommand{\ReconstructOp}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{R}}{#2}}} \newcommand{\ReconstructOpSimple}[2]{\QuantityFunctionOf{\Mat{R}}{#1}} \newcommand{\Gramian}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Mat{G}}{#2}}} \newcommand{\GramianSimple}[2]{\QuantityFunctionOf{\Mat{G}}{#1}} \newcommand{\BernsteinSpaceOnMeshBezier}{\QCO{\MeshBezier}{\BernsteinSpace}} \newcommand{\BernsteinTraceMappingMat}{\Mat{M}} \newcommand{\ParamDomain}{\SymbolParamModifier{\SymbolDomain}} \newcommand{\ParamDomainOnCell}{\QuantityChildOf{\Cell}{\ParamDomain}} \newcommand{\ParamDomainBdry}{\SymbolParamModifier{\SymbolDomainBdry}} \newcommand{\ParamDomainChart}[2]{\QuantityFunctionOf{\Vec{\phi}^{#1}}{#2}} \newcommand{\ParamDim}{\SymbolDim} \newcommand{\ParamCoordSimple}{s} \newcommand{\ParamCoord}[1]{\QCO{#1}{s}} \newcommand{\ParamCoordVecSimple}{\Vec{s}} \newcommand{\ParamCoordVec}[1]{\QCO{#1}{\Vec{\ParamCoord{}}}} \newcommand{\ParamDomainBdryParamCoord}{\ParamCoord{\ParamDomainBdry}} \newcommand{\ParamDomainBdryParamCoordVec}{\ParamCoordVec{\ParamDomainBdry}} \newcommand{\ParamCoordVecSet}{\boldsymbol{\Set{S}}} \newcommand{\ParamS}{\ParamCoord{}_0} \newcommand{\ParamT}{\ParamCoord{}_1} \newcommand{\ParamU}{\ParamCoord{}_2} \newcommand{\ParamBarycentric}[1]{\lambda_{#1}} \newcommand{\ParamLength}{\ell} \newcommand{\ParamLengthLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLength}} \newcommand{\ParamLengthRight}{\QuantityChildOf{\CellToTheRight}{\ParamLength}} \newcommand{\ParamLengthInS}{\ParamLength_{0}} \newcommand{\ParamLengthInT}{\ParamLength_{1}} \newcommand{\ParamLengthLeftS}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthLeftT}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthRightS}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthRightT}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\ParamLengthInSLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInS}} \newcommand{\ParamLengthInTLeft}{\QuantityChildOf{\CellToTheLeft}{\ParamLengthInT}} \newcommand{\ParamLengthInSRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInS}} \newcommand{\ParamLengthInTRight}{\QuantityChildOf{\CellToTheRight}{\ParamLengthInT}} \newcommand{\NormalParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\perp}_{#1}}{#2}} \newcommand{\ParallelParamCoordSet}[2]{\QuantityFunctionOf{\ParamCoordVecSimple^{\parallel}_{#1}}{#2}} \newcommand{\BernsteinDegreeInS}{\BernsteinDegree_{0}} \newcommand{\BernsteinDegreeInT}{\BernsteinDegree_{1}} \newcommand{\BernsteinDegreeLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\BernsteinDegreeInSLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInSRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInS}} \newcommand{\BernsteinDegreeInTLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeInTRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegreeInT}} \newcommand{\BernsteinDegreeBarycentricLeft}{\QuantityChildOf{\CellToTheLeft}{\BernsteinDegree}} \newcommand{\BernsteinDegreeBarycentricRight}{\QuantityChildOf{\CellToTheRight}{\BernsteinDegree}} \newcommand{\ParamGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolParamModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\ParamGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolParamModifier{G}}}{#1}} \newcommand{\ParamDomainOnMeshBezier}{\QuantityChildOf{\MeshBezier}{\ParamDomain}} \newcommand{\ParamDomainOnMeshUspline}{\QuantityChildOf{\MeshUspline}{\ParamDomain}} \newcommand{\Submesh}{\boldsymbol{\mathsf{K}}}%changed from mathsf \newcommand{\SubmeshDomain}{\SymbolSubmeshModifier{\SymbolDomain}} \newcommand{\SubmeshDomainChart}[2]{\QuantityFunctionOf{\Vec{\varphi}^{#1}}{#2}} \newcommand{\SubmeshDomainParameter}{\mathsf{\alpha}}%changed from mathsf \newcommand{\SubmeshDomainParameterVec}{\Vec{\SubmeshDomainParameter}} \newcommand{\SubmeshGrevillePoint}[2]{\QuantityChildOf{#1}{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#2}}} \newcommand{\SubmeshGrevillePointSimple}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{\SymbolGrevillePoint}}}{#1}} \newcommand{\SubmeshGrevilleMaxPoint}[1]{\QuantityChildOf{#1}{\Set{\SymbolGrevillePoint}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSimple}{\Set{\SymbolGrevillePoint}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\max}} \newcommand{\SubmeshGrevilleMaxPointSetSimple}{\Set{G}_{\max}} \newcommand{\SubmeshGrevilleMinPointSet}[1]{\QuantityChildOf{#1}{\Set{G}}_{\min}} \newcommand{\SubmeshGrevilleMinPointSetSimple}{\Set{G}_{\min}} \newcommand{\SubmeshGrevilleMaxPointLeft}{\SubmeshGrevilleMaxPoint{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointRight}{\SubmeshGrevilleMaxPoint{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointIntersection}{\SubmeshGrevilleMaxPoint{\Interface}} \newcommand{\SubmeshGrevilleMinPointSetLeft}{\SubmeshGrevilleMinPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMinPointSetRight}{\SubmeshGrevilleMinPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetLeft}{\SubmeshGrevilleMaxPointSet{\CellAlpha}} \newcommand{\SubmeshGrevilleMaxPointSetRight}{\SubmeshGrevilleMaxPointSet{\CellBeta}} \newcommand{\SubmeshGrevilleMaxPointSetIntersection}{\SubmeshGrevilleMaxPointSet{\Interface}} \newcommand{\SubmeshGrevillePointSet}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{G}}}{#1}} \newcommand{\SubmeshGrevillePointSetLeft}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GA}}}{#1}} \newcommand{\SubmeshGrevillePointSetRight}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GB}}}{#1}} \newcommand{\SubmeshGrevillePointSetElement}[2]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GE}}_{#1}}{#2}} \newcommand{\SubmeshGrevillePointSetIntersect}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GI}}}{#1}} \newcommand{\SubmeshGrevillePointSetUnion}[1]{\QuantityFunctionOf{\Set{\SymbolSubmeshModifier{GU}}}{#1}} \newcommand{\SubmeshGrevillePointSetSet}[1]{\QuantityFunctionOf{\boldsymbol{\SubmeshGrevillePointSet{}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetLeft}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GA}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetRight}[1]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GB}}}}{#1}} \newcommand{\SubmeshGrevillePointSetSetElement}[2]{\QuantityFunctionOf{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1}}{#2}} \newcommand{\SubmeshGrevilleDifferenceVectorsSetLeft}{\Delta\SubmeshGrevilleMaxPointSetLeft} \newcommand{\SubmeshGrevilleDifferenceVectorsSetRight}{\Delta\SubmeshGrevilleMaxPointSetRight} \newcommand{\SubmeshGrevilleDifferenceVector}{\Delta\SubmeshGrevilleMaxPoint{\GlosOne}} \newcommand{\SubmeshGrevilleDifferenceVectorLeft}{\Delta\SubmeshGrevilleMaxPointLeft} \newcommand{\SubmeshGrevilleDifferenceVectorRight}{\Delta\SubmeshGrevilleMaxPointRight} \newcommand{\SubmeshGrevilleDifferenceVectorsSet}{\Delta \SubmeshGrevillePointSet{\GlosOne}} \newcommand{\SubmeshGrevilleDistanceToCell}[2]{\QuantityFunctionOf{\SymbolDistance}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCell}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMin}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\min}}{#1, #2}} \newcommand{\SubmeshPerpIndexDistanceToCellMax}[2]{\QuantityFunctionOf{\operatorname{id}\SymbolDistance^\perp_{\max}}{#1, #2}} \newcommand{\SubmeshPerpProjection}[2]{\QuantityFunctionOf{\Projection^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelProjection}[2]{\QuantityFunctionOf{\Projection^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarProjection}[2]{\QuantityFunctionOf{\Projection^{*}_{#1}}{#2}} \newcommand{\SubmeshPerpEquivalence}[2]{\QuantityFunctionOf{\varpi^{\perp}_{#1}}{#2}} \newcommand{\SubmeshParallelEquivalence}[2]{\QuantityFunctionOf{\varpi^{\parallel}_{#1}}{#2}} \newcommand{\SubmeshStarEquivalence}[2]{\QuantityFunctionOf{\varpi^{*}_{#1}}{#2}} \newcommand{\AlignedSet}{{\boldsymbol{\textsf{Align}}}}%changed from mathsf \newcommand{\AlignedSetSet}{{\boldsymbol{\textsf{ALIGN}}}}%changed from mathsf \newcommand{\AlignmentSetOfSetsLeft}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetOfSetsRight}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \SubmeshGrevillePoint{\Interface}{}}^{\parallel}} \newcommand{\AlignmentSetForInterfaceGrevillePoint}{\AlignedSet_{\SubmeshGrevillePoint{\Interface}{}}} \newcommand{\IndexSetOfNonZeroEntriesInMapMatOnRow}[2]{\QuantityFunctionOf{\Set{NZ}_{#1}}{#2}} \newcommand{\AlignmentSetOfSetsOnLowerDCell}[2]{\boldsymbol{\SymbolSubmeshModifier{\Set{GE}}}_{#1,#2}^{\parallel}} \newcommand{\AlignmentSetOfSetsLeftThreeD}{\SubmeshGrevillePointSetSetLeft{}_{\Interface, \ii}^{\parallel}} \newcommand{\AlignmentSetOfSetsRightThreeD}{\SubmeshGrevillePointSetSetRight{}_{\Interface, \ii}^{\parallel}} \newcommand{\MeshUspline}{\boldsymbol{\textsf{\SymbolUspline}}}%changed from mathsf \newcommand{\SetNeighborhoodOfInteraction}[1]{\QuantityFunctionOf{\textsf{NI}}{#1}}%changed from mathsf \newcommand{\Ray}{\Set{r}} \newcommand{\RayHead}{\Edge^{h}} \newcommand{\RayTail}{\Vec{t}} \newcommand{\RayTailId}{j} \newcommand{\RayTailIdOne}{\RayTailId_0} \newcommand{\RayTailIdTwo}{\RayTailId_1} \newcommand{\RayTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RayTailEdge}{\Edge} \newcommand{\RayTailVertexMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RayTailEdgeMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RaySkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RaySmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RayDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RayContinuityTransition}{\Set{cr}} \newcommand{\RayDegreeTransition}{\Set{dr}} \newcommand{\RayTailSize}{\Size{\RayTail}} \newcommand{\RayTailTargetSize}{n} \newcommand{\RayIsTruncated}{\Set{trunc}} \newcommand{\RayAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RayStartingBernIndex}{\RayAlgBernIndexVariable_{\RayHead}} \newcommand{\BernIndexOnSpecificRayTailEdge}[1]{\RayAlgBernIndexVariable_{#1}} \newcommand{\Ribbon}{\Set{r}} \newcommand{\RibbonHead}{\Interface^{h}} \newcommand{\RibbonTail}{\Vec{t}} \newcommand{\RibbonTailId}{j} \newcommand{\RibbonTailIdOne}{\RibbonTailId_0} \newcommand{\RibbonTailIdTwo}{\RibbonTailId_1} \newcommand{\RibbonTailOrigin}{\textsf{o}}%changed from mathsf \newcommand{\RibbonTailInterf}{\Interface} \newcommand{\RibbonTailCodimTwoCellMaxContinuity}[1]{\Smoothness_{#1}^{\max}} \newcommand{\RibbonTailInterfMinDegree}[1]{\BernsteinDegree_{#1}^{\min}} \newcommand{\RibbonSkeleton}[1]{\operatorname{skel}(#1)} \newcommand{\RibbonSmoothness}[2]{\Smoothness_{#1}^{#2}} \newcommand{\RibbonDegree}[2]{\BernsteinDegree_{#1}^{#2}} \newcommand{\RibbonContinuityTransition}{\Set{cr}} \newcommand{\RibbonDegreeTransition}{\Set{dr}} \newcommand{\RibbonTailSize}{\Size{\RibbonTail}} \newcommand{\RibbonTailTargetSize}{n} \newcommand{\RibbonIsTruncated}{\Set{trunc}} \newcommand{\RibbonAlgBernIndexVariable}{\BernsteinBasisFuncIdSet} \newcommand{\RibbonStartingBernIndex}{\RibbonAlgBernIndexVariable_{\RibbonHead}} \newcommand{\BernIndexOnSpecificRibbonTailInterf}[1]{\RibbonAlgBernIndexVariable_{#1}} \newcommand{\UsplineSpace}{\SpaceHilbert{\SymbolUspline}} \newcommand{\UsplineBasisFunc}{\SymbolBasisUspline} \newcommand{\UsplineBasisFuncDetailed}[2]{\UsplineBasisFunc^{#1}_{#2}} \newcommand{\UsplineBasisFuncSet}[1]{\QuantityFunctionOf{\Set{UF}}{#1}} \newcommand{\UsplineBasisFuncVec}[2]{\QuantityFunctionOf{\QuantityChildOf{#1}{\Vec{\SymbolBasisUspline}}}{#2}} \newcommand{\UsplineBasisFuncSetOnMeshBezier}{\QuantityFunctionOf{\Set{UF}}{\MeshBezier}} \newcommand{\UsplineBasisFuncSetOnMeshUspline}{\QuantityFunctionOf{\Set{UF}}{\MeshUspline}} \newcommand{\UsplineBasisFuncSetSupport}[1]{\Support{\UsplineBasisFuncSet{#1}}} \newcommand{\UsplineBasisFuncId}{A} \newcommand{\UsplineBasisFuncIdAlt}{B} \newcommand{\UsplineBasisFuncIdLocal}{a} \newcommand{\UsplineBasisFuncIdOne}{\UsplineBasisFuncId_0} \newcommand{\UsplineBasisFuncIdTwo}{\UsplineBasisFuncId_1} \newcommand{\UsplineBasisFuncNormalized}{\bar{\SymbolBasisUspline}} \newcommand{\UsplineBasisFuncParam}[1]{\UsplineBasisFuncDetailed{\MeshBezier}{#1}} \newcommand{\UsplineDegree}{q} \newcommand{\UsplineNullVectorCoeff}{\SymbolUsplineLower}%{\MakeLowercase} \newcommand{\UsplineNullVector}{\Vec{\UsplineNullVectorCoeff}} \newcommand{\UsplineNullVectorIds}{\Set{id}} \newcommand{\UsplineNullVectorSet}{\boldsymbol{\textsf{UV}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOfIndexSets}{\boldsymbol{\textsf{UI}}}%changed from mathsf \newcommand{\UsplineNullVectorSetOnMeshBezier}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshBezier}} \newcommand{\UsplineNullVectorSetOnMeshUspline}{\QuantityFunctionOf{\UsplineNullVectorSet}{\MeshUspline}} \newcommand{\UsplineSpaceOnMeshUspline}{\QCO{\MeshUspline}{\UsplineSpace}} \newcommand{\UsplineCellToGlobalBasisFuncIndexMap}[1]{\operatorname{ucg}(#1)} \newcommand{\UsplineCellToGlobalBasisFuncIndexMapDef}{\FuncDef{\operatorname{ucg}}{\MeshBezier\times\Integers}{\Integers}} \newcommand{\ContiguousIndexMap}[1]{\QuantityFunctionOf{i_{#1}}} \newcommand{\Constraint}{R} %\newcommand{\ConstraintCoeff}{\MakeLowercase{\Constraint}} \newcommand{\ConstraintCoeff}{r} \newcommand{\ConstraintCoeffsSet}{\boldsymbol{\Set{\ConstraintCoeff}}} \newcommand{\ConstraintCoeffsVec}{\Vec{\ConstraintCoeff}} \newcommand{\ConstraintSet}[1]{\QuantityFunctionOf{\Set{\Constraint}}{#1}} \newcommand{\ConstraintSetOnMeshBezier}{\ConstraintSet{\MeshBezier}} \newcommand{\ConstraintMat}[1]{\QuantityFunctionOf{\Mat{\Constraint}}{#1}} \newcommand{\ConstraintMatOnMeshBezier}{\ConstraintMat{\MeshBezier}} \newcommand{\SparsestPossibleBasisOnCell}[1]{\QFO{\Set{N}}{#1}} \newcommand{\NullVectorCoeff}[1]{#1} \newcommand{\NullVector}[1]{\QuantityFunctionOf{\Vec{v}}{#1}} \newcommand{\NullVectorArbitrary}[2]{\QuantityFunctionOf{\Vec{#1}}{#2}} \newcommand{\KCellNullVectorForCellAlpha}{\NullVectorArbitrary{n}{}_{\KCellAlpha}} \newcommand{\KPlusOneCellNullVectorForCellBeta}{\NullVectorArbitrary{n}{}_{\KPlusOneCellBeta}} \newcommand{\NullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\CompositeNullVectorSet}[1]{\NullVectorSet{#1}^{\prime\prime}} \newcommand{\SimpleNullVectorSet}[1]{\NullVectorSet{#1}^{\prime}} \newcommand{\InterfaceNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}}{#1}}%changed from mathsf \newcommand{\InterfaceNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{IBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOfIndexSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BI}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetGrevilleSets}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BG}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetOnMeshBezier}{\NullVectorSet{\MeshBezier}} \newcommand{\NullVectorSetSubordinateToNullVector}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorSetSubordinateToNullVectorOnCell}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{SBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorSetOnBdryOfNullVector}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{BD}}_{#1}}{#2}}%changed from mathsf \newcommand{\NullVectorEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBV}}}{#1}}%changed from mathsf \newcommand{\NullVectorIndexEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBI}}}{#1}}%changed from mathsf \newcommand{\NullVectorGrevilleEquivClass}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{EBG}}}{#1}}%changed from mathsf \newcommand{\NullVectorExpansionSet}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{XBV}}}{#1,#2}}%changed from mathsf \newcommand{\NullSpaceOperatorForm}[1]{\QuantityFunctionOf{\SpaceHilbert{N}}{#1}} \newcommand{\NullSpaceOperatorFormOnMeshBezier}{\NullSpaceOperatorForm{\MeshBezier}} \newcommand{\NullSpaceVectorForm}[1]{\QuantityFunctionOf{\Set{N}}{#1}} \newcommand{\NullVectorGrevillePointSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{BV}}}{#1}}%changed from mathsf \newcommand{\DegSmoothDiff}[2]{\delta_{#1}^{#2}} \newcommand{\FaceEdgeDiff}{\Set{t}} \newcommand{\FaceEdgeDiffSet}[1]{\Set{T}_{#1}} \newcommand{\PerpTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\perp}{#1}} \newcommand{\ParallelTuple}[1]{\QuantityFunctionOf{\FaceEdgeDiff^\parallel}{#1}} \newcommand{\ElemInterfDiff}{\Set{t}} \newcommand{\ElemInterfDiffSet}[1]{\Set{T}_{#1}} \newcommand{\SpokeSymbol}{\rho} \newcommand{\ElemInterfPairSymbol}{t} \newcommand{\ElemKPlusOneCellPair}{\Set{\SpokeSymbol}} \newcommand{\Spoke}{\ElemKPlusOneCellPair} \newcommand{\ElemInterfPair}{\Set{\ElemInterfPairSymbol}} \newcommand{\EIDPerpTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\perp}{#1}} \newcommand{\EIDParallelTuple}[1]{\QuantityFunctionOf{\ElemInterfDiff^\parallel}{#1}} \newcommand{\InclDist}[1]{\QuantityFunctionOf{\textsf{inc}}{#1}}%changed from mathsf \newcommand{\InclDistSet}[2]{\Set{INC}^{#1,#2}} \newcommand{\EdgeInclDist}[3]{\InclDistSet{#2}{#3}_{#1}} \newcommand{\PerpEdgesSet}{\Set{E}^\perp} \newcommand{\PerpInterfacesSet}{\Set{IRF}^\perp} \newcommand{\PerpOfKPlusOneCellInterfSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PI}}}{#1}}%changed from mathsf \newcommand{\PerpKPlusOneCellSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{PC}}}{#1}}%changed from mathsf \newcommand{\ElemKPlusOneCellPairPerp}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\perp}{#1}} \newcommand{\ElemInterfPairPerp}[1]{\QuantityFunctionOf{\Set{t}^\perp}{#1}} \newcommand{\ElemInterfPairParallel}[1]{\QuantityFunctionOf{\Set{\ElemInterfPairSymbol}^\parallel}{#1}} \newcommand{\ElemKPlusOneCellPairParallelSet}[1]{\QuantityFunctionOf{\Set{\SpokeSymbol}^\parallel}{#1}} \newcommand{\KPlusOneCellNullVectorSet}[1]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}}{#1}}%changed from mathsf \newcommand{\KPlusOneCellNullVectorAlignedSubset}[2]{\QuantityFunctionOf{\boldsymbol{\textsf{HBV}}_{#1}}{#2}}%changed from mathsf \newcommand{\Graph}[1]{\QuantityFunctionOf{G}{#1}} \newcommand{\GraphCore}{K} \newcommand{\GraphDirectedEdge}{\Edge_{i,j}} \newcommand{\GraphDirectedEdgeIJ}[2]{\Edge_{#1,#2}} \newcommand{\GraphCoreToVertex}[1]{\QuantityFunctionOf{\Vertex}{#1}} \newcommand{\GraphCoreChildren}[1]{\QuantityFunctionOf{\operatorname{children}}{#1}} \newcommand{\GraphVertexToCore}[1]{\QuantityFunctionOf{\GraphCore}{#1}} \newcommand{\GraphInteractingEdges}{\Set{IE}} \newcommand{\GraphCoveredEdges}{\Set{CE}} \newcommand{\GraphFailedEdges}{\Set{FE}} \newcommand{\GraphCandidateEdges}{\Set{XE}} \newcommand{\UsplineClass}[1]{\boldsymbol{\mathcal{\SymbolUspline}}^{#1}} \newcommand{\UClassRegular}{R} \newcommand{\UClassIrregular}{r} \newcommand{\UClassContFinite}{H} \newcommand{\UClassContInfinity}{h} \newcommand{\UClassGlobalSmoothness}{K} \newcommand{\UClassLocalSmoothness}{k} \newcommand{\UClassGlobalDegree}{P} \newcommand{\UClassLocalDegree}{p} \newcommand{\SuperscriptRHKP}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHKP}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhKP}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhKP}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHkP}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrHkP}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRhkP}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptrhkP}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassGlobalDegree} \newcommand{\SuperscriptRHKp}{\UClassRegular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHKp}{\UClassIrregular\UClassContFinite\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhKp}{\UClassRegular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrhKp}{\UClassIrregular\UClassContInfinity\UClassGlobalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRHkp}{\UClassRegular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptrHkp}{\UClassIrregular\UClassContFinite\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\SuperscriptRhkp}{\UClassRegular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\Superscriptrhkp}{\UClassIrregular\UClassContInfinity\UClassLocalSmoothness\UClassLocalDegree} \newcommand{\UsplineClassRHKP}{\UsplineClass{\SuperscriptRHKP}} \newcommand{\UsplineClassrHKP}{\UsplineClass{\SuperscriptrHKP}} \newcommand{\UsplineClassRhKP}{\UsplineClass{\SuperscriptRhKP}} \newcommand{\UsplineClassrhKP}{\UsplineClass{\SuperscriptrhKP}} \newcommand{\UsplineClassRHkP}{\UsplineClass{\SuperscriptRHkP}} \newcommand{\UsplineClassrHkP}{\UsplineClass{\SuperscriptrHkP}} \newcommand{\UsplineClassRhkP}{\UsplineClass{\SuperscriptRhkP}} \newcommand{\UsplineClassrhkP}{\UsplineClass{\SuperscriptrhkP}} \newcommand{\UsplineClassRHKp}{\UsplineClass{\SuperscriptRHKp}} \newcommand{\UsplineClassrHKp}{\UsplineClass{\SuperscriptrHKp}} \newcommand{\UsplineClassRhKp}{\UsplineClass{\SuperscriptRhKp}} \newcommand{\UsplineClassrhKp}{\UsplineClass{\SuperscriptrhKp}} \newcommand{\UsplineClassRHkp}{\UsplineClass{\SuperscriptRHkp}} \newcommand{\UsplineClassrHkp}{\UsplineClass{\SuperscriptrHkp}} \newcommand{\UsplineClassRhkp}{\UsplineClass{\SuperscriptRhkp}} \newcommand{\UsplineClassrhkp}{\UsplineClass{\Superscriptrhkp}} \newcommand{\AlgNameBuildRayOfMaximumCouplingLength}{\textit{BuildRayOfMaximumCouplingLength}} \newcommand{\AlgNameBuildRibbonOfMaximumCouplingLength}{\textit{BuildRibbonOfMaximumCouplingLength}} \newcommand{\AlgNameComputeCoreGraph}{ComputeCoreGraph} \newcommand{\SymbolParentModifier}[1]{\overbar{#1}} \newcommand{\SymbolParamModifier}[1]{\hat{#1}} \newcommand{\SymbolSubmeshModifier}{} \newcommand{\SymbolDomain}{\Domain} \newcommand{\SymbolDomainBdry}{\DomainBdry} \newcommand{\SymbolBernstein}{B} \newcommand{\SymbolBasisUspline}{N} \newcommand{\SymbolUspline}{U} \newcommand{\SymbolUsplineLower}{u} \newcommand{\SymbolGrevillePoint}{g} \newcommand{\SymbolDim}{d} \newcommand{\SymbolArbitraryCoeffUspline}{c} \newcommand{\SymbolArbitraryCoeffUsplineAlt}{\beta} \newcommand{\SymbolArbitraryCoeffBernstein}{c} \newcommand{\SymbolDistance}{\operatorname{dist}} \newcommand{\UpperDBMat}{\Mat{U}} \newcommand{\LowerWeightDBMat}{\Mat{W}} \newcommand{\RationalSplineWeightSymbol}{w} \newcommand{\NURBSWeight}{\RationalSplineWeightSymbol} \newcommand{\WeightFunc}[1][\RationalSplineWeightSymbol]{#1} \newcommand{\DBParamWeight}{\omega} \newcommand{\DualBCoeff}{d}$$\newcommand{\SymbolTime}{t} \newcommand{\SymbolClosestPointMap}{\kappa} \newcommand{\SymbolManifold}{m} \newcommand{\SymbolVolume}{v} \newcommand{\SymbolSurface}{s} \newcommand{\SymbolCurve}{c} \newcommand{\SymbolPoint}{p} \newcommand{\SymbolIndicator}{\chi} \newcommand{\SymbolSpatialDim}{n} \newcommand{\SymbolWildCard}{*} \newcommand{\SymbolSegment}{\epsilon} \newcommand{\SymbolSpatialCoord}{x} \newcommand{\SymbolSpatialCoordUpper}{X} \newcommand{\SymbolSegmentSet}{\boldsymbol{E}} \newcommand{\SymbolInside}{\bullet} \newcommand{\SymbolOutside}{\circ} \newcommand{\SymbolHybrid}{\circledcirc} \newcommand{\SymbolPartition}{\boldsymbol{\vartriangle}} \newcommand{\SymbolQuadratureWeight}{w} \newcommand{\SymbolQuadratureSet}{Q} \newcommand{\SymbolQuadraturePoint}{\xi} \newcommand{\SymbolIntegrationPoint}{i} \newcommand{\SymbolManifoldCoeff}{x} \newcommand{\SymbolManifoldCoeffUpper}{X} \newcommand{\SymbolManifoldCoeffUspline}{x} \newcommand{\SymbolManifoldCoeffUsplineUpper}{X} \newcommand{\SymbolManifoldCoeffBernstein}{x} \newcommand{\SymbolManifoldCoeffBernsteinUpper}{X} \newcommand{\SymbolCADModified}{\boldsymbol{\circledast}} \newcommand{\SymbolCAD}{\bar{\SymbolCADModified}} \newcommand{\SymbolProjection}{\Projection} \newcommand{\SymbolCovariantBasisSurf}{a} \newcommand{\SymbolCovariantBasisVol}{g} \newcommand{\SymbolMetric}{m} \newcommand{\SymbolCurvature}{k} \newcommand{\SymbolCurvCoordIdOne}{\alpha} \newcommand{\SymbolCurvCoordIdTwo}{\beta} \newcommand{\SymbolCurvCoordIdThree}{\gamma} \newcommand{\SymbolOrthogonalTransform}{Q} \newcommand{\SymbolEnvModifier}[1]{\star\mspace{-1mu} #1} \newcommand{\ParamDomainEnv}{\SymbolEnvModifier{\ParamDomain}} \newcommand{\ParamDomainCAD}{\QRT{\ParamDomain}{\SymbolCAD}} \newcommand{\ParamDomainOnCellEnv}{\SymbolEnvModifier{\ParamDomainOnCell}} \newcommand{\ParamDomainOnCAD}{\QCO{\SymbolCAD}{\ParamDomain}} \newcommand{\ParamDomainOnCADModified}{\QCO{\SymbolCADModified}{\ParamDomain}} \newcommand{\ParamDomainOnPartition}{\QCO{\Partition{}}{\ParamDomain}} \newcommand{\SpatialDim}{\SymbolSpatialDim} \newcommand{\SpatialDomain}{\Reals^{\SymbolSpatialDim}} \newcommand{\SpatialCoord}{\SymbolSpatialCoord} \newcommand{\SpatialCoordUpper}{\SymbolSpatialCoordUpper} \newcommand{\SpatialCoordVec}{\Vec{\SpatialCoord}} \newcommand{\SpatialCoordVecSet}[1]{\QuantityFunctionOf{\boldsymbol{\Set{\SpatialCoordUpper}}}{#1}} \newcommand{\UsplineBasisFuncSpatial}[1]{\UsplineBasisFuncDetailed{\SpatialCoord}{#1}} \newcommand{\Manifold}[1]{\QuantityRelatedTo{\Set{\SymbolManifold}}{#1}} \newcommand{\Volume}[1]{\QuantityRelatedTo{\Set{\SymbolVolume}}{#1}} \newcommand{\Surface}[1]{\QuantityRelatedTo{\Set{\SymbolSurface}}{#1}} \newcommand{\Curve}[1]{\QuantityRelatedTo{\Set{\SymbolCurve}}{#1}} \newcommand{\Point}[1]{\QuantityRelatedTo{\Set{\SymbolPoint}}{#1}} \newcommand{\ManifoldCAD}{\Manifold{\SymbolCAD}} \newcommand{\ManifoldCADModified}{\Manifold{\SymbolCADModified}} \newcommand{\ManifoldCADEnv}{\SymbolEnvModifier{\ManifoldCAD}} \newcommand{\ManifoldCADModifiedEnv}{\SymbolEnvModifier{\ManifoldCADModified}} \newcommand{\ManifoldPartition}{\Manifold{\Partition{}}} \newcommand{\ManifoldBezier}{\Manifold{\MeshBezier}} \newcommand{\ManifoldUspline}{\Manifold{\MeshUspline}} \newcommand{\ManifoldUsplineEnv}{\SymbolEnvModifier{\ManifoldUspline}} \newcommand{\VolumeEnv}{\SymbolEnvModifier{\Volume{}}} \newcommand{\dVolume}{\Differential[\Volume{}]} \newcommand{\VolumeIndicator}{\SymbolIndicator} \newcommand{\SurfaceEnv}{\SymbolEnvModifier{\Surface{}}} \newcommand{\SurfaceCAD}{\Surface{\SymbolCAD}} \newcommand{\SurfaceCADModified}{\Surface{\SymbolCADModified}} \newcommand{\SurfaceMesh}{\Surface{\Partition{}}} \newcommand{\SurfaceUspline}{\Surface{\MeshUspline}} \newcommand{\SurfaceWildCard}{\Surface{}^{\SymbolWildCard}} \newcommand{\dSurface}{\Differential[\Surface{}]} \newcommand{\CurveCAD}{\Curve{\SymbolCAD}} \newcommand{\CurveCADModified}{\Curve{\SymbolCADModified}} \newcommand{\CurveMesh}{\Curve{\Partition{}}} \newcommand{\CurveUspline}{\Curve{\MeshUspline}} \newcommand{\dCurve}{\Differential[\Curve{}]} \newcommand{\PointCAD}{\Point{\SymbolCAD}} \newcommand{\PointCADModified}{\Point{\SymbolCADModified}} \newcommand{\PointUspline}{\Point{\MeshUspline}} \newcommand{\ManifoldCoeff}{\SymbolManifoldCoeff} \newcommand{\ManifoldCoeffUpper}{\SymbolManifoldCoeffUpper} \newcommand{\ManifoldCoeffUspline}{\QuantityRelatedTo{\SymbolManifoldCoeffUspline}{\MeshUspline}} \newcommand{\ManifoldCoeffBernstein}{\QuantityRelatedTo{\SymbolManifoldCoeffBernstein}{\MeshBezier}} \newcommand{\ManifoldCoeffVec}{\Vec{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffSet}{\Set{\SymbolManifoldCoeff}} \newcommand{\ManifoldCoeffSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUspline}}{\MeshUspline}} \newcommand{\ManifoldCoeffSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernstein}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVec}{\Vec{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsVecUspline}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsVecBernstein}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsVecCell}{\QuantityRelatedTo{\Vec{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsVecUsplineCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinCell}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldCoeffsVecBernsteinSegmentOfVolumeEnv}{\QuantityRelatedTo{\Vec{\SymbolManifoldCoeffBernsteinUpper}}{\SegmentOfVolumeEnv}} \newcommand{\ManifoldCoeffsSet}{\Set{\ManifoldCoeffUpper}} \newcommand{\ManifoldCoeffsSetUspline}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\MeshUspline}} \newcommand{\ManifoldCoeffsSetBernstein}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\MeshBezier}} \newcommand{\ManifoldCoeffsSetCell}{\QuantityRelatedTo{\Set{\ManifoldCoeffUpper}}{\Cell}} \newcommand{\ManifoldCoeffsSetUsplineCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffUsplineUpper}}{\QCO{\MeshUspline}{\Cell}}} \newcommand{\ManifoldCoeffsSetBernsteinCell}{\QuantityRelatedTo{\Set{\SymbolManifoldCoeffBernsteinUpper}}{\QCO{\MeshBezier}{\Cell}}} \newcommand{\ManifoldMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\ManifoldTemporalMap}[2]{\QuantityRelatedTo{#2}{#1,\SymbolTime}} \newcommand{\ManifoldPartitionMap}{\ManifoldMap{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldCADMap}{\ManifoldMap{\ParamDomainOnCAD}{\Manifold{}}} \newcommand{\ManifoldCADMapModified}{\ManifoldMap{\ParamDomainOnCADModified}{\Manifold{}}} \newcommand{\ManifoldBezierMap}{\ManifoldMap{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMap}{\ManifoldMap{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMap}{\ManifoldMap{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMap}{\ManifoldMap{\ParamDomainBdry}{\Surface{}}} \newcommand{\ManifoldMapDef}[2]{\FuncDef{\ManifoldMap{#1}{#2}}{#1}{#2}} \newcommand{\ManifoldMapInverseDef}[2]{\FuncDef{\Inverse{\ManifoldMap{#1}{#2}}}{#2}{#1}} \newcommand{\ManifoldTemporalMapDef}[2]{\FuncDef{\ManifoldTemporalMap{#1}{#2}}{#1\otimes\Reals_{+}}{#2}} \newcommand{\ManifoldPartitionMapDef}{\ManifoldMapDef{\ParamDomainOnPartition}{\Manifold{}}} \newcommand{\ManifoldBezierMapDef}{\ManifoldMapDef{\ParamDomainOnMeshBezier}{\Manifold{}}} \newcommand{\ManifoldUsplineMapDef}{\ManifoldMapDef{\ParamDomainOnMeshUspline}{\Manifold{}}} \newcommand{\VolumeEnvMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnv}} \newcommand{\VolumeMapDef}{\ManifoldMapDef{\ParamDomain}{\Volume{}}} \newcommand{\SurfaceMapDef}{\ManifoldMapDef{\ParamDomainBdry}{\Surface{}}} \newcommand{\SurfaceToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\Surface{}}} \newcommand{\ManifoldCoordDetailed}[2]{\QCO{#1}{#2}} \newcommand{\ManifoldCoordVecDetailed}[2]{\QCO{#1}{\Vec{#2}}} \newcommand{\ManifoldCoord}{x} \newcommand{\ManifoldCoordVec}{\Vec{x}} \newcommand{\ManifoldPartitionMapCoord}{\ManifoldCoordDetailed{\ManifoldPartitionMap}{\ManifoldCoord}} \newcommand{\ManifoldPartitionMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldPartitionMap}{\ManifoldCoordVec}} \newcommand{\ManifoldCADMapCoord}{\ManifoldCoordDetailed{\ManifoldCADMap}{\ManifoldCoord}} \newcommand{\ManifoldCADMapCoordVec}{\ManifoldCoordVecDetailed{\ManifoldCADMap}{\ManifoldCoordVec}} \newcommand{\CovariantBasisSurfVec}{\Vec{\SymbolCovariantBasisSurf}} \newcommand{\CovariantBasisVolVec}{\Vec{\SymbolCovariantBasisVol}} \newcommand{\MetricComp}{\SymbolMetric} \newcommand{\MetricTen}{\Mat{\MetricComp}} \newcommand{\CurvatureComp}{\SymbolCurvature} \newcommand{\CurvatureTen}{\Mat{\CurvatureComp}} \newcommand{\CurvCoordIdOne}{\SymbolCurvCoordIdOne} \newcommand{\CurvCoordIdTwo}{\SymbolCurvCoordIdTwo} \newcommand{\CurvCoordIdThree}{\SymbolCurvCoordIdThree} \newcommand{\OrthogonalCoordTransform}{\Mat{\SymbolOrthogonalTransform}} \newcommand{\Segment}[1]{\QuantityChildOf{#1}{\SymbolSegment}} \newcommand{\SegmentOfVolumeEnv}{\Segment{\VolumeEnv}} \newcommand{\Hex}{\Segment{}_{h}} \newcommand{\Tet}{\Segment{}_{t}} \newcommand{\SegmentParamDomain}[1]{\QuantityRelatedTo{\ParamDomain}{#1}} \newcommand{\SegmentParamDomainOfVolumeEnv}{\QuantityRelatedTo{\ParamDomain}{\Segment{\VolumeEnv}}} \newcommand{\SegmentSet}[1]{\QuantityFunctionOf{\SymbolSegmentSet}{#1}} \newcommand{\SegmentSetOutside}{\SegmentSet{}^{\SymbolOutside}} \newcommand{\SegmentSetInside}{\SegmentSet{}^{\SymbolInside}} \newcommand{\SegmentSetHybrid}{\SegmentSet{}^{\SymbolHybrid}} \newcommand{\Partition}[1]{\QuantityFunctionOf{\SymbolPartition}{#1}} \newcommand{\PartitionBezierExtraction}[1]{\QuantityFunctionOf{\SymbolPartition^{B}}{#1}} \newcommand{\PartitionTessellation}[1]{\QuantityFunctionOf{\SymbolPartition^{T}}{#1}} \newcommand{\PartitionTessellationOfUspline}{\PartitionTessellation{\MeshUspline}} \newcommand{\PartitionTessellationMap}[2]{\QuantityRelatedTo{#2}{#1}} \newcommand{\BoundingVolume}[1]{\QuantityFunctionOf{\Set{bv}}{#1}} \newcommand{\BoundingVolumeSet}[1]{\QuantityFunctionOf{\Set{BV}}{#1}} \newcommand{\BoundingVolumeTree}[1]{\QuantityFunctionOf{\Set{BVH}}{#1}} \newcommand{\AxisAlignedBoundingBox}[1]{\QuantityFunctionOf{\Set{AABB}}{#1}} \newcommand{\SimplexMap}[1]{\QuantityFunctionOf{\Mat{L}}{#1}} \newcommand{\ParamCoordVecTarget}{\ParamCoordVecSimple_0} \newcommand{\SpatialCoordVecTarget}{\SpatialCoordVec_0} \newcommand{\SpatialCoordVecToSegmentSetMap}{\SegmentSet{}^f} \newcommand{\SpatialCoordVecToParamCoordVecSetMap}{\Inverse{\widetilde{\ManifoldMap{\ParamDomainEnv}{\Surface{}}}}} \newcommand{\HessMatComp}{H} \newcommand{\HessMatTen}{\Mat{\HessMatComp}} \newcommand{\QuadraturePointEnv}[2]{\SymbolEnvModifier{\QuadraturePoint{#1}{#2}}} \newcommand{\QuadraturePoint}[2]{\SymbolQuadraturePoint_{#1}^{#2}} \newcommand{\QuadraturePointToElemIndexMap}[1]{\operatorname{qe}(#1)} \newcommand{\QuadratureWeightEnv}[2]{\SymbolEnvModifier{\QuadratureWeight{#1}{#2}}} \newcommand{\QuadratureWeight}[2]{\SymbolQuadratureWeight_{#1}^{#2}} \newcommand{\QuadratureSet}{\Set{\SymbolQuadratureSet}} \newcommand{\QuadratureSetInside}{\QuadratureSet^{\SymbolInside}} \newcommand{\QuadratureSetOutside}{\QuadratureSet^{\SymbolOutside}} \newcommand{\QuadratureSubdDepth}{k} \newcommand{\ClosestPointMap}[1]{\QuantityChildOf{#1}{\Vec{\SymbolClosestPointMap}}} \newcommand{\ClosestPointMapCAD}{\ClosestPointMap{\SymbolCAD}} \newcommand{\ClosestPointMapCADModified}{\ClosestPointMap{\SymbolCADModified}} \newcommand{\ProjectionInto}[1]{\QuantityRelatedTo{\SymbolProjection}{#1}} \newcommand{\ProjectionIntoBernsteinCell}{\ProjectionInto{\Cell}} \newcommand{\ProjectionIntoBernsteinElem}{\ProjectionInto{\Elem}} \newcommand{\ProjectionIntoMeshBezier}{\ProjectionInto{\MeshBezier}} \newcommand{\ProjectionIntoMeshUspline}{\ProjectionInto{\MeshUspline}}$$\newcommand{\ParamDomainBdryDisp}{\ParamDomainBdry^{\SymbolDisp}} \newcommand{\ParamDomainBdryTrac}{\ParamDomainBdry^{\SymbolTracForce}} \newcommand{\VolumeEnvRef}{\Set{\SymbolEnvModifier{\SymbolVolumeRef}}} \newcommand{\VolumeRef}{\Set{\SymbolVolumeRef}} \newcommand{\VolumeRefClosure}{\overline{\VolumeRef}} \newcommand{\VolumeRefFict}{\VolumeEnvRef\setminus\VolumeRef} \newcommand{\dVolumeRef}{\Differential[\VolumeRef]} \newcommand{\VolumeIndicatorDef}{\FuncDef{\VolumeIndicator_{\PenaltyStiffness}}{\VolumeEnvRef}{\Reals_+}} \newcommand{\SurfaceEnvRef}{\Set{\SymbolEnvModifier{\SymbolSurfaceRef}}} \newcommand{\SurfaceRef}{\Set{\SymbolSurfaceRef}} \newcommand{\SurfaceRefWildCard}{\SurfaceRef^{\SymbolWildCard}} \newcommand{\SurfaceRefDisp}{\SurfaceRef^{\SymbolDisp}} \newcommand{\SurfaceRefTrac}{\SurfaceRef^{\SymbolTracForce}} \newcommand{\SurfaceRefFict}{\SurfaceRef^{\SymbolFict}} \newcommand{\SurfaceRefDispExternal}{\SurfaceRefDisp\setminus\SurfaceRefFict} \newcommand{\SurfaceRefTracExternal}{\SurfaceRefTrac\setminus\SurfaceRefFict} \newcommand{\SurfaceRefFictTrac}{\SurfaceRefTrac\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictDisp}{\SurfaceRefDisp\cap\SurfaceRefFict} \newcommand{\SurfaceRefFictExternal}{\SurfaceRefFict\setminus\SurfaceRef} \newcommand{\dSurfaceRef}{\Differential[\SurfaceRef]} \newcommand{\CurveRef}{\Set{\SymbolCurveRef}} \newcommand{\dCurveRef}{\Differential[\CurveRef]} \newcommand{\PointRef}{\Set{\SymbolPointRef}} \newcommand{\PointRefDisp}{\PointRef^{\SymbolDisp}} \newcommand{\PointRefTrac}{\PointRef^{\SymbolTracForce}} \newcommand{\dPointRef}{\Differential[\PointRef]} \newcommand{\dPointRefTrac}{\Differential[\PointRefTrac]} \newcommand{\RefCoord}[1]{\ManifoldCoordDetailed{#1}{X}} \newcommand{\RefCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{X}} \newcommand{\VolumeEnvRefCoord}{\RefCoord{\VolumeEnvRef}} \newcommand{\VolumeEnvRefCoordVec}{\RefCoordVec{\VolumeEnvRef}} \newcommand{\VolumeRefCoord}{\RefCoord{\VolumeRef}} \newcommand{\VolumeRefCoordVec}{\RefCoordVec{\VolumeRef}} \newcommand{\SurfaceRefCoord}{\RefCoord{\SurfaceRef}} \newcommand{\SurfaceRefCoordVec}{\RefCoordVec{\SurfaceRef}} \newcommand{\SurfaceRefDispCoord}{\RefCoord{\SurfaceRefDisp}} \newcommand{\SurfaceRefDispCoordVec}{\RefCoordVec{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracCoord}{\RefCoord{\SurfaceRefTrac}} \newcommand{\SurfaceRefTracCoordVec}{\RefCoordVec{\SurfaceRefTrac}} \newcommand{\CurveRefCoord}{\RefCoord{\CurveRef}} \newcommand{\CurveRefCoordVec}{\RefCoordVec{\CurveRef}} \newcommand{\UsplineBasisFuncOverCurveRef}[1]{\UsplineBasisFuncDetailed{\CurveRef}{#1}} \newcommand{\UsplineBasisFuncOverSurfaceRefDisp}[1]{\UsplineBasisFuncDetailed{\SurfaceRefDisp}{#1}} \newcommand{\VolumeEnvCurr}{\Set{\SymbolEnvModifier{\SymbolVolumeCurr}}} \newcommand{\VolumeCurr}{\Set{\SymbolVolumeCurr}} \newcommand{\VolumeCurrClosure}{\overline{\VolumeCurr}} \newcommand{\dVolumeCurr}{\Differential[\VolumeCurr]} \newcommand{\SurfaceEnvCurr}{\Set{\SymbolEnvModifier{\SymbolSurfaceCurr}}} \newcommand{\SurfaceCurr}{\Set{\SymbolSurfaceCurr}} \newcommand{\SurfaceCurrDisp}{\SurfaceCurr^{\SymbolDisp}} \newcommand{\SurfaceCurrTrac}{\SurfaceCurr^{\SymbolTracForce}} \newcommand{\dSurfaceCurr}{\Differential[\SurfaceCurr]} \newcommand{\CurveCurr}{\Set{\SymbolCurveCurr}} \newcommand{\dCurveCurr}{\Differential[\CurveCurr]} \newcommand{\PointCurr}{\Set{\SymbolPointCurr}} \newcommand{\PointCurrDisp}{\PointCurr^{\SymbolDisp}} \newcommand{\PointCurrTrac}{\PointCurr^{\SymbolTracForce}} \newcommand{\dPointCurr}{\Differential[\PointCurr]} \newcommand{\CurrCoord}[1]{\ManifoldCoordDetailed{#1}{x}} \newcommand{\CurrCoordVec}[1]{\ManifoldCoordVecDetailed{#1}{x}} \newcommand{\VolumeEnvCurrCoord}{\CurrCoord{\VolumeEnvCurr}} \newcommand{\VolumeEnvCurrCoordVec}{\CurrCoordVec{\VolumeEnvCurr}} \newcommand{\VolumeCurrCoord}{\CurrCoord{\VolumeCurr}} \newcommand{\VolumeCurrCoordVec}{\CurrCoordVec{\VolumeCurr}} \newcommand{\SurfaceCurrCoord}{\CurrCoord{\SurfaceCurr}} \newcommand{\SurfaceCurrCoordVec}{\CurrCoordVec{\SurfaceCurr}} \newcommand{\SurfaceCurrDispCoord}{\CurrCoord{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrDispCoordVec}{\CurrCoordVec{\SurfaceCurrDisp}} \newcommand{\SurfaceCurrTracCoord}{\CurrCoord{\SurfaceCurrTrac}} \newcommand{\SurfaceCurrTracCoordVec}{\CurrCoordVec{\SurfaceCurrTrac}} \newcommand{\CurveCurrCoord}{\CurrCoord{\CurveRef}} \newcommand{\CurveCurrCoordVec}{\CurrCoordVec{\CurveRef}} \newcommand{\VolumeEnvRefMap}{\ManifoldMap{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\GenericGradOverVolumeEnvRefMap}[1]{\Grad{\VolumeEnvRefMap}{#1}} \newcommand{\VolumeRefMap}{\ManifoldMap{\ParamDomain}{\VolumeRef}} \newcommand{\GenericGradOverVolumeRefMap}[1]{\Grad{\VolumeRefMap}{#1}} \newcommand{\SurfaceRefDispMap}{\ManifoldMap{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMap}{\ManifoldMap{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\CurveRefMap}{\ManifoldMap{\ParamDomain}{\CurveRef}} \newcommand{\GenericGradOverCurveRefMap}[1]{\Grad{\CurveRefMap}{#1}} \newcommand{\VolumeEnvRefMapDef}{\ManifoldMapDef{\ParamDomainEnv}{\VolumeEnvRef}} \newcommand{\SurfaceRefDispMapDef}{\ManifoldMapDef{\ParamDomainBdryDisp}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracMapDef}{\ManifoldMapDef{\ParamDomainBdryTrac}{\SurfaceRefTrac}} \newcommand{\SurfaceRefToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRef}} \newcommand{\SurfaceRefDispToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefDisp}} \newcommand{\SurfaceRefTracToParamDomainEnvMapInverseDef}{\ManifoldMapInverseDef{\ParamDomainEnv}{\SurfaceRefTrac}} \newcommand{\CurveRefMapDef}{\ManifoldMapDef{\ParamDomain}{\CurveRef}} \newcommand{\GenericDeformMap}{\Vec{\varphi}} \newcommand{\VolumeEnvDeformMap}{\ManifoldMap{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\GenericGradOverVolumeEnvDeformMap}[1]{\Grad{\VolumeEnvDeformMap}{#1}} \newcommand{\VolumeDeformMap}{\ManifoldMap{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMap}{\ManifoldTemporalMap{\VolumeRef}{\VolumeCurr}} \newcommand{\GradVolumeDeformTemporalMap}{\GenericGradOverVolumeRefMap{\VolumeDeformTemporalMap}} \newcommand{\SurfaceDeformDispMap}{\ManifoldMap{\SurfaceRefDisp}{\SurfaceCurrDisp}} \newcommand{\SurfaceDeformTracMap}{\ManifoldMap{\SurfaceRefTrac}{\SurfaceCurrTrac}} \newcommand{\CurveDeformMap}{\ManifoldMap{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMap}{\ManifoldTemporalMap{\CurveRef}{\CurveCurr}} \newcommand{\VolumeDeformMapDef}{\ManifoldMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeDeformTemporalMapDef}{\ManifoldTemporalMapDef{\VolumeRef}{\VolumeCurr}} \newcommand{\VolumeEnvDeformMapDef}{\ManifoldMapDef{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\CurveDeformMapDef}{\ManifoldMapDef{\CurveRef}{\CurveCurr}} \newcommand{\CurveDeformTemporalMapDef}{\ManifoldTemporalMapDef{\CurveRef}{\CurveCurr}} \newcommand{\DispTrialSpaceOverVolumeEnvRef}{\SpaceHilbert{U}(\VolumeEnvRef)} \newcommand{\DispTestSpaceOverVolumeEnvRef}{\delta \DispTrialSpaceOverVolumeEnvRef} \newcommand{\DispTrialSpaceOverVolumeRef}{\SpaceHilbert{U}(\VolumeRef)} \newcommand{\DispTestSpaceOverVolumeRef}{\delta \DispTrialSpaceOverVolumeRef} \newcommand{\DispTrialSpaceOverCurveRef}{\SpaceHilbert{U}(\CurveRef)} \newcommand{\DispTestSpaceOverCurveRef}{\delta \DispTrialSpaceOverCurveRef} \newcommand{\DispFieldRefComp}{U} \newcommand{\DispFieldRefTen}{\Vec{\DispFieldRefComp}} \newcommand{\DispFieldCurrComp}{\SymbolDisp} \newcommand{\DispFieldCurrTen}{\Vec{\DispFieldCurrComp}} \newcommand{\VelFieldCurrTen}{\Vec{\SymbolVelocity}} \newcommand{\AccFieldCurrTen}{\Vec{\SymbolAcceleration}} \newcommand{\DeformGradComp}{\SymbolDeformGrad} \newcommand{\DeformGradTen}{\Mat{\DeformGradComp}} \newcommand{\DeformGradDet}{\Det{\DeformGradTen}} \newcommand{\JAsDeformGradDet}{J} \newcommand{\StretchTen}{\Mat{V}} \newcommand{\StrainGreenLagrangeComp}{\SymbolStrainGreenLagrange} \newcommand{\StrainGreenLagrangeTen}{\Mat{\StrainGreenLagrangeComp}} \newcommand{\StrainGreenLagrangeVoigt}{\tilde{\StrainGreenLagrangeTen}} \newcommand{\DeformCauchyGreenRightComp}{\SymbolDeformCauchyGreenRight} \newcommand{\DeformCauchyGreenRightTen}{\Mat{\DeformCauchyGreenRightComp}} \newcommand{\DeformCauchyGreenLeftComp}{\SymbolDeformCauchyGreenLeft} \newcommand{\DeformCauchyGreenLeftTen}{\Mat{\DeformCauchyGreenLeftComp}} \newcommand{\DeformCauchyGreenLeftDevComp}{\bar{\SymbolDeformCauchyGreenLeft}} \newcommand{\DeformCauchyGreenLeftDevTen}{\bar{\Mat{\DeformCauchyGreenLeftComp}}} \newcommand{\StrainSymGradComp}{\SymbolStrainSymGrad} \newcommand{\StrainSymGradTen}{\Mat{\StrainSymGradComp}} \newcommand{\StrainDispMat}{\Mat{\SymbolStrainDisp}} \newcommand{\KinematicElast}[1]{#1^e} \newcommand{\KinematicPlast}[1]{#1^p} \newcommand{\DivVolumeEnvRef}[1]{\Div{\VolumeEnvRefCoordVec}{#1}} \newcommand{\DivVolumeEnvCurr}[1]{\Div{\VolumeEnvCurrCoordVec}{#1}} \newcommand{\UnitNormalRefComp}{N} \newcommand{\UnitNormalRefTen}{\Vec{N}} \newcommand{\UnitNormalCurrComp}{\UnitNormalComp} \newcommand{\UnitNormalCurrTen}{\UnitNormal} \newcommand{\DispFieldOverVolumeEnvRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeEnvCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\DispFieldOverVolumeRefTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\VolumeRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DispFieldOverVolumeCurrTenDef}{\DispFieldCurrTen \DefEq \DispFieldRefTen \circ \Inverse{\VolumeDeformMap}} \newcommand{\DispFieldOverCurveRefTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\DispFieldOverCurveRefTemporalTenDef}{\FuncDef{\DispFieldRefTen}{\CurveRef\otimes\SymbolTime}{\SpatialDomain}} \newcommand{\DeformGradOverVolumeRefTenDef}{\FuncDef{\DeformGradTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\DeformGradOverCurveRefTenDef}{\FuncDef{\DeformGradTen}{\CurveRef}{\CurveCurr}} \newcommand{\StrainGreenLagrangeOverVolumeEnvRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeEnvRef}{\VolumeEnvCurr}} \newcommand{\StrainGreenLagrangeOverVolumeRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\VolumeRef}{\VolumeCurr}} \newcommand{\StrainGreenLagrangeOverCurveRefTenDef}{\FuncDef{\StrainGreenLagrangeTen}{\CurveRef}{\CurveCurr}} \newcommand{\DeformCauchyGreenLeftTenDef}{\DeformCauchyGreenLeftTen \DefEq \DeformGradTen \DeformGradTen^T} \newcommand{\DeformCauchyGreenLeftDevTenDef}{\DeformCauchyGreenLeftDevTen \DefEq \DeformGradDet^{-\frac{2}{3}} \DeformCauchyGreenLeftTen} \newcommand{\StressPKOneTen}{\Mat{P}} \newcommand{\StressPKTwoComp}{S} \newcommand{\StressPKTwoTen}{\Mat{\StressPKTwoComp}} \newcommand{\StressPKTwoVoigt}{\tilde{\StressPKTwoTen}} \newcommand{\StressCauchyComp}{\sigma} \newcommand{\StressCauchyTen}{\Mat{\sigma}} \newcommand{\StressCauchyVoigt}{\tilde{\StressCauchyTen}} \newcommand{\StressKirchhoffComp}{\tau} \newcommand{\StressKirchhoffTen}{\Mat{\tau}} \newcommand{\StressKirchhoffVoigt}{\tilde{\StressKirchhoffTen}} \newcommand{\ModuliElastRefComp}{C} \newcommand{\ModuliElastRefTen}{\Mat{\ModuliElastRefComp}} \newcommand{\ModuliElastRefVoigt}{\tilde{\ModuliElastRefTen}} \newcommand{\ModuliElastCurrComp}{c} \newcommand{\ModuliElastCurrTen}{\Mat{\ModuliElastCurrComp}} \newcommand{\ModuliElastCurrVoigt}{\tilde{\ModuliElastCurrTen}} \newcommand{\MaterialYoungsModulus}{E} \newcommand{\MaterialPoissonsRatio}{\nu} \newcommand{\MaterialMassDensity}{\rho} \newcommand{\MaterialBulkModulus}{\kappa} \newcommand{\MaterialShearModulus}{\mu} \newcommand{\MaterialThermalExpansion}{\alpha_{\text{thermal}}} \newcommand{\CrossSectArea}{\SymbolArea} \newcommand{\Length}{\SymbolLength} \newcommand{\PenaltyStiffness}{\SymbolPenalty_{\SymbolStiffness}} \newcommand{\PenaltyDisp}{\SymbolPenalty_{\SymbolDisp}} \newcommand{\BodyForceRefComp}{B} \newcommand{\BodyForceRefTen}{\Vec{\BodyForceRefComp}} \newcommand{\BodyForceCurrComp}{\SymbolBodyForce} \newcommand{\BodyForceCurrTen}{\Vec{\BodyForceCurrComp}} \newcommand{\TracForceRefComp}{H} \newcommand{\TracForceRefTen}{\Vec{\TracForceRefComp}} \newcommand{\TracForceCurrComp}{\SymbolTracForce} \newcommand{\TracForceCurrTen}{\Vec{\TracForceCurrComp}} \newcommand{\Pressure}{p} \newcommand{\BodyForceOverVolumeEnvRefTenDef}{\FuncDef{\BodyForceRefTen}{\VolumeEnvRef}{\SpatialDomain}} \newcommand{\BodyForceOverVolumeEnvCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\VolumeEnvDeformMap}} \newcommand{\BodyForceOverCurveRefCompDef}{\FuncDef{\BodyForceRefComp}{\CurveRef}{\Reals}} \newcommand{\BodyForceOverCurveRefTenDef}{\FuncDef{\BodyForceRefTen}{\CurveRef}{\SpatialDomain}} \newcommand{\BodyForceOverCurveCurrCompDef}{\BodyForceCurrComp \DefEq \BodyForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\BodyForceOverCurveCurrTenDef}{\BodyForceCurrTen \DefEq \BodyForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverSurfaceRefTracTenDef}{\FuncDef{\TracForceRefTen}{\SurfaceRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverSurfaceCurrTracTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\SurfaceDeformTracMap}} \newcommand{\TracForceOverCurveRefCompDef}{\FuncDef{\TracForceRefComp}{\PointRefTrac}{\Reals}} \newcommand{\TracForceOverCurveRefTenDef}{\FuncDef{\TracForceRefTen}{\PointRefTrac}{\SpatialDomain}} \newcommand{\TracForceOverCurveCurrCompDef}{\TracForceCurrComp \DefEq \TracForceRefComp \circ \Inverse{\CurveDeformMap}} \newcommand{\TracForceOverCurveCurrTenDef}{\TracForceCurrTen \DefEq \TracForceRefTen \circ \Inverse{\CurveDeformMap}} \newcommand{\ConstraintRefTen}{\Vec{G}} \newcommand{\LagrangeMultTestSpaceOverSurfaceRef}{\delta \LagrangeMultTrialSpaceOverSurfaceRef} \newcommand{\LagrangeMultTrialSpaceOverSurfaceRef}{\SpaceHilbert{L}(\SurfaceRefDisp)} \newcommand{\LagrangeMultRefComp}{\SymbolLagrangeMultRef} \newcommand{\LagrangeMultRefTen}{\Vec{\LagrangeMultRefComp}} \newcommand{\LagrangeMultCurrComp}{\SymbolLagrangeMultCurr} \newcommand{\LagrangeMultCurrTen}{\Vec{\LagrangeMultCurrComp}} \newcommand{\ConstraintOverSurfaceRefDispTenDef}{\FuncDef{\ConstraintRefTen}{\SurfaceRefDisp}{\SpatialDomain}} \newcommand{\LagrangeMultOverSurfaceCurrTenDef}{\LagrangeMultCurrTen \DefEq \LagrangeMultRefTen \circ \Inverse{\SurfaceDeformDispMap}} \newcommand{\Energy}{\SymbolEnergy} \newcommand{\EnergyElastic}[1]{\QFO{\Energy}{#1}} \newcommand{\EnergyEnv}{\SymbolEnvModifier{\Energy}} \newcommand{\EnergyInside}{\Energy^{\SymbolInside}} \newcommand{\EnergyOutside}{\Energy^{\SymbolOutside}} \newcommand{\EnergyConstraint}{\Energy^{\LagrangeMultCurrComp}} \newcommand{\EnergyDensityStrain}{\SymbolEnergyDensityStrain} \newcommand{\EnergyInsideOverVolumeEnvRefDef}{\FuncDef{\EnergyInside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyOutsideOverVolumeEnvRefDef}{\FuncDef{\EnergyOutside}{\DispTrialSpaceOverVolumeEnvRef}{\Reals}} \newcommand{\EnergyConstraintOverVolumeEnvRefDef}{\FuncDef{\EnergyConstraint}{\DispTrialSpaceOverVolumeEnvRef\TensorProduct\LagrangeMultTrialSpaceOverSurfaceRef}{\Reals}} \newcommand{\EnergyDensityStrainOverVolumeEnvRefDef}{\FuncDef{\EnergyDensityStrain}{\VolumeEnvRef}{\Reals}} \newcommand{\ResidualComp}{\SymbolResidual} \newcommand{\ResidualVec}{\Vec{\ResidualComp}} \newcommand{\ForceVec}{\Vec{\SymbolForce}} \newcommand{\ForceInternalVec}{\ForceVec^{int}} \newcommand{\ForceExternalVec}{\ForceVec^{ext}} \newcommand{\ForceConstraintPenaltyVec}{\ForceVec^{\PenaltyDisp}} \newcommand{\ForceConstraintLagrangeVec}{\ForceVec^{\lambda1}} \newcommand{\ForceConstraintVec}{\ForceVec^{\lambda2}} \newcommand{\StiffnessMat}{\Mat{\SymbolStiffness}} \newcommand{\StiffnessMaterialMat}{\StiffnessMat^{m}} \newcommand{\StiffnessGeometricMat}{\StiffnessMat^{g}} \newcommand{\StiffnessPenaltyMat}{\StiffnessMat^{\PenaltyDisp}} \newcommand{\StiffnessLagrangeMat}{\StiffnessMat^{\LagrangeMultCurrComp}} \newcommand{\MassMat}{\Mat{\SymbolMass}} \newcommand{\LumpedMassMat}{\tilde{\MassMat}} \newcommand{\SolutionComp}{\SymbolSolution} \newcommand{\Solution}{\Vec{\SymbolSolution}} \newcommand{\SolutionDisp}{\Solution^{\DispFieldCurrComp}} \newcommand{\SolutionLagrange}{\Solution^{\LagrangeMultCurrComp}} \newcommand{\FlexOne}{\mathcal{F}_{1}} \newcommand{\FlexInfty}{\mathcal{F}_{\infty}} \newcommand{\Flex}[1]{\mathcal{F}_{#1}} \newcommand{\FlexIt}{\mathcal{F}} \newcommand{\FlexFEA}{\mathcal{F}_{\bar{0}}} \newcommand{\FlexFEAModified}{\mathcal{F}_{0}} \newcommand{\FlexImmersed}{\mathcal{F}_{\infty}} \newcommand{\FlexSpectrum}{\overleftrightarrow{\mathcal{F}}} \newcommand{\FlexSpectrumId}{i} \newcommand{\TimeStep}{\Delta \SymbolTime} \newcommand{\SpectralRadius}{\rho_{\infty}} \newcommand{\SymbolDisp}{u} \newcommand{\SymbolVelocity}{v} \newcommand{\SymbolAcceleration}{a} \newcommand{\SymbolMass}{M} \newcommand{\SymbolLength}{L} \newcommand{\SymbolArea}{A} \newcommand{\SymbolConstraint}{g} \newcommand{\SymbolPenalty}{\varepsilon} \newcommand{\SymbolLagrangeMultRef}{\Lambda} \newcommand{\SymbolLagrangeMultCurr}{\lambda} \newcommand{\SymbolFict}{f} \newcommand{\SymbolTracForce}{h} \newcommand{\SymbolBodyForce}{b} \newcommand{\SymbolVolumeRef}{V} \newcommand{\SymbolSurfaceRef}{S} \newcommand{\SymbolCurveRef}{C} \newcommand{\SymbolPointRef}{P} \newcommand{\SymbolVolumeCurr}{\SymbolVolume} \newcommand{\SymbolSurfaceCurr}{\SymbolSurface} \newcommand{\SymbolCurveCurr}{\SymbolCurve} \newcommand{\SymbolPointCurr}{\SymbolPoint} \newcommand{\SymbolDeformGrad}{F} \newcommand{\SymbolStrainGreenLagrange}{E} \newcommand{\SymbolDeformCauchyGreenLeft}{b} \newcommand{\SymbolDeformCauchyGreenRight}{C} \newcommand{\SymbolStrainDisp}{B} \newcommand{\SymbolStrainSymGrad}{\epsilon} \newcommand{\SymbolEnergy}{\Pi} \newcommand{\SymbolEnergyDensityStrain}{\Psi} \newcommand{\SymbolResidual}{R} \newcommand{\SymbolForce}{F} \newcommand{\SymbolStiffness}{K} \newcommand{\SymbolSolution}{d}$

At times it is desirable to have identical meshes on two different surfaces or curves. The align mesh command will attempt to assign correspondence between nodes on surfaces or curves and move the nodes on one surface or curve to match the configuration on the other. The command syntax is:

Align Mesh Surface <id> [CloseTo] Surface <id> [Tolerance <tol>]

Align Mesh Curve <id> [CloseTo] Curve <id> [Tolerance <tol>]

These two commands align the mesh on the first entity with that of the second entity. This means that nodes on the first entity will be moved to the closest location possible to their corresponding nodes on the second entity. This is done without regard to mesh quality, so it is possible to invert elements with this command.

Align Mesh Node <id> [CloseTo] Node <id> [Tolerance <tol>]

This command aligns the first node with the second node, within the limits of the geometric entities that own the nodes. This is also done without respect for element quality.

And example of this is given as follows:

brick x 10
volume 1 copy move 11
surface all except 10 6 vis off
transparent
graphics perspective off
at 5.552503 3.832384 0.134127
from 34.651051 3.640138 -0.193121
up 0.006514 0.999945 -0.008172

mesh surface all
surface 6 smooth scheme randomize free
smooth surface 6
node 432 move 0 0 -0.2
align mesh node 944 node 432
node 432 move 0 0 0.4
align mesh curve 23 closeto curve 12
align mesh surf 10 closeto surf 6

##### 5.6.3Block Repositioning

$\newcommand{\QuantityFunctionOf}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}(#2) % \fi } \newcommand{\QFO}[2]{\QuantityFunctionOf{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOf}[3] { % \if\relax\detokenize{#3}\relax % {#1}_{#2} % \else {#1}_{#2}(#3) % \fi } \newcommand{\SQFO}[3]{\SubscriptedQuantityFunctionOf{#1}{#2}{#3}} \newcommand{\QuantityChildOf}[2] { % \if\relax\detokenize{#1}\relax % {#2} % \else {#2}^{#1} % \fi } \newcommand{\QCO}[2]{\QuantityChildOf{#1}{#2}} \newcommand{\QuantityRelatedTo}[2] { % \if\relax\detokenize{#2}\relax % {#1} % \else {#1}[#2] % \fi } \newcommand{\QRT}[2]{\QuantityRelatedTo{#1}{#2}} \newcommand{\QuantitySubscriptedBy}[2] { % \if\relax\detokenize{#2}\relax % #1 % \else #1_{#2} % \fi } \newcommand{\QSB}[2]{\QuantitySubscriptedBy{#1}{#2}} \newcommand{\SubscriptedQuantityFunctionOfChildOf}[4] { % \if\relax\detokenize{#4}\relax % #1_{#2}^{#3} % \else #1_{#2}^{#3}(#4) % \fi } \newcommand{\SQFOCO}[4]{\SubscriptedQuantityFunctionOfChildOf{#1}{#2}{#3}{#4}} \newcommand{\overbar}[1]{\mkern 1.5mu\overline{\mkern-1.5mu#1\mkern-1.5mu}\mkern 1.5mu} \newcommand{\bcdot}{\boldsymbol{\cdot}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Logic %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SuchThat}{\, : \,} \newcommand{\DefEq}{\overset{\operatorname{def}}{=}} \newcommand{\True}{\textsf{True}} \newcommand{\False}{\textsf{False}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Arrays, tuples, and sets %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\ArrayRoster}[1]{\left[#1\right]} \newcommand{\ArrayRosterI}[2]{[#1]_{#2}} \newcommand{\ArrayEmpty}{\ArrayRoster{\hspace{1mm}}} \newcommand{\Tuple}[1]{\mathsf{#1}}%was \mathsf \newcommand{\TupleRoster}[1]{\left(#1\right)} \newcommand{\PointPair}[2]{\TupleRoster{#1, #2}} \newcommand{\Set}[1]{\mathsf{#1}}%was \mathsf \newcommand{\SetRoster}[1]{\left\{ #1 \right\}} \newcommand{\SetRosterIndexed}[3]{\SetRoster{#1}_{#2}^{#3}} \newcommand{\SetRosterPredicate}[2]{\SetRoster{#1 \SuchThat #2}} \newcommand{\SetEmpty}{\varnothing} \newcommand{\SetPower}[1]{\QuantityFunctionOf{\boldsymbol{\Set{P}}}{#1}} \newcommand{\SetNeighborhood}[1]{\QuantityFunctionOf{\boldsymbol{\Set{B}}}{#1}} \newcommand{\Domain}{\Omega} \newcommand{\DomainBdry}{\Gamma} \newcommand{\IntervalClosed}[2]{\left[#1, #2\right]} \newcommand{\IntervalOpen}[2]{\left(#1, #2\right)} \newcommand{\IntervalClosedOpen}[2]{\left[#1, #2\right)} \newcommand{\IntervalOpenClosed}[2]{\left(#1, #2\right]} % special \newcommand{\Reals}{\mathbb{R}} \newcommand{\Naturals}{\mathbb{N}} \newcommand{\Integers}{\mathbb{Z}} \newcommand{\Field}{\mathbb{F}} % properties \newcommand{\Size}[1]{\left\lvert #1 \right\rvert} \newcommand{\Union}[3]{\bigcup\limits_{#1}^{#2} #3} \newcommand{\UnionInline}[3]{\bigcup_{#1}^{#2} #3} \newcommand{\Intersect}[3]{\bigcap\limits_{#1}^{#2} #3} \newcommand{\ElementWiseGreaterOrEqual}{\succeq} \newcommand{\ElemntWiseGreater}{\succ} \newcommand{\ElementWiseLessOrEqual}{\preceq} \newcommand{\ElementWiseLess}{\prec} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Infinite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinear}[1]{\mathnormal{#1}} \newcommand{\SpaceDual}[1]{\SpaceLinear{#1}^*} % normed spaces \newcommand{\AbsoluteValue}[1]{\Size{#1}} \newcommand{\Norm}[2]{\left\lVert #2 \right\rVert_{#1}} \newcommand{\NormAbstract}[1]{\Norm{}{#1}} \newcommand{\NormSemi}[1]{\Size{#1}} \newcommand{\SpaceLinearNormed}[1]{\left(\SpaceLinear{#1}, \NormAbstract{\bcdot} \right)} \newcommand{\SpaceBanach}[1]{\mathfrak{#1}} % normed and complete % inner product spaces \newcommand{\SymmetricBilinear}[2]{\left(#1, #2\right)} \newcommand{\InnerProduct}[2]{\left\langle#1, #2\right\rangle} \newcommand{\SpaceInnerProduct}[1]{\left(\SpaceLinear{#1}, \InnerProduct{\bcdot}{\bcdot}\right)} \newcommand{\SpaceHilbert}[1]{\mathcal{#1}} \newcommand{\SpaceLTwo}{\SpaceHilbert{L}_2} \newcommand{\SpaceLTwoDef}[2]{\SpaceLTwo\left(#1; #2\right)} \newcommand{\SpaceLInfty}{\SpaceHilbert{L}_\infty} \newcommand{\SpaceLTwoWeighted}{\SpaceLTwo^w} \newcommand{\SpaceSobolevK}[1]{\SpaceHilbert{H}^{#1}} \newcommand{\SpaceSobolevKDef}[3]{\SpaceSobolevK{1}\left(#2 ; #3\right)} % differentiable spaces \newcommand{\Cont}{\operatorname{cont}} \newcommand{\SpaceCont}{\SpaceHilbert{C}} \newcommand{\SpaceContDef}[2]{\SpaceCont\left(#1 ; #2\right)} \newcommand{\SpaceContK}[1]{\SpaceCont^{#1}} \newcommand{\SpaceContKDef}[3]{\SpaceContK{#1}\left(#2; #3\right)} \newcommand{\SpaceContZero}{\SpaceContK{0}} \newcommand{\SpaceContInf}{\SpaceContK{\infty}} \newcommand{\SpaceContInfDef}[2]{\SpaceContKDef{\infty}{#1}{#2}} \newcommand{\SpaceContKBounded}[2]{\SpaceContK{#1}_{#2}} \newcommand{\SpaceContKBoundedDef}[3]{\SpaceCont_{b}^{#1}\left(#2 ; #3\right)} % linear operator spaces \newcommand{\SpaceLinearOperator}[1]{\mathscr{#1}} \newcommand{\SpaceLinearOperatorDef}[2]{\SpaceLinearOperator{L}\left(#1 ; #2\right)} \newcommand{\SpaceLinearOperatorBoundedDef}[2]{\SpaceLinearOperator{B}\left(#1 ; #2\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Finite dimensional spaces %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\SpaceLinearN}[1]{\SpaceLinear{#1}^h} \newcommand{\SpaceHilbertN}[1]{\SpaceHilbert{#1}^h} \newcommand{\SpaceVecRealN}[1]{\Reals^{#1}} \newcommand{\SpacePoly}[1]{\SpaceHilbert{P}^{#1}} \newcommand{\SpaceMatrixRealMN}[2]{\Reals^{#1\times#2}} \newcommand{\SpacePolyDef}[3]{\SpacePoly{#1}\left(#2 ; #3\right)} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Functions, vectors, and linear operators %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Func}[1][f]{#1} \newcommand{\FuncAlt}[1][g]{#1} \newcommand{\FuncDef}[3]{#1 \SuchThat #2 \rightarrow #3} \newcommand{\FuncApprox}[1]{#1^h} \newcommand{\LinearOperator}[1]{\SpaceLinearOperator{#1}} \newcommand{\LinearOperatorDef}[3]{\FuncDef{#1}{#2}{#3}} \newcommand{\Functional}[1]{\LinearOperator{#1}} \newcommand{\Projection}{\Pi} \newcommand{\VectorProjection}[2]{\Projection_{#1} {\left(#2\right)}} \newcommand{\Mat}[1]{\boldsymbol{#1}} \newcommand{\MatIJ}[3]{\left[#1\right]_{#2#3}} \newcommand{\MatIdRow}{m} \newcommand{\MatIdCol}{n} \newcommand{\Identity}{\Mat{I}} \newcommand{\KroneckerDelta}{\Mat{\delta}} \newcommand{\LeviCivita}{\Mat{\epsilon}} \newcommand{\Jacobian}{\Mat{J}} \renewcommand{\Vec}[1]{\boldsymbol{#1}} \newcommand{\VecChildOf}[2]{\QCO{#2}{#1}} \newcommand{\VecI}[2]{\{#1\}_{#2}} \newcommand{\ZeroVec}{\Vec{0}} \newcommand{\OneVec}{\Vec{1}} \newcommand{\ZeroMat}{\Mat{0}} \newcommand{\UnitNormalComp}{n} \newcommand{\UnitNormal}{\Vec{\UnitNormalComp}} % rename to UnitNormalTen \newcommand{\MacBracket}[1]{\langle#1\rangle} \newcommand{\HeavisideFunc}[1]{\mathit{H}\left(#1\right)} \newcommand{\DiracDelta}[2]{\delta_{D}\left(#1 - #2\right)} \newcommand{\IdentityTenSym}{\mathbb{I}} \newcommand{\BraKet}[1]{\langle#1\rangle} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Lagrange Optimization %%%%%%%%%%%%%%%%%%%%%%%%%%%% %\newcommand{\Min}[1]{\min\limits_{#1}} %\newcommand{\Max}[1]{\max\limits_{#1}} \newcommand{\FuncObjective}[1]{\QFO{\Func}{#1}} \newcommand{\FuncEqualityConstraints}[1]{\QFO{\Func[\Vec{g}]}{#1}} \newcommand{\VarDesign}{\Vec{\phi}} \newcommand{\VarState}[1]{\QFO{\Vec{u}}{#1}} \newcommand{\FuncLagrangian}[1]{\QFO{\mathscr{L}}{#1}} \newcommand{\FuncAugmentedLagrangian}[1]{\QFO{\mathscr{L}_A}{#1}} \newcommand{\VecLambdaLM}[1]{\QFO{\Vec{\lambda}}{#1}} \newcommand{\LambdaLM}[1]{\QFO{\lambda}{#1}} \newcommand{\SolutionLocalOpt}[1]{\left(#1\right)^*} \newcommand{\ProximalPoint}{\overbar{\VecLambdaLM{}}} \newcommand{\PenaltyParameter}{\rho} \newcommand{\Slacify}[1]{\QSB{#1}{s}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Linear algebra %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\Prod}[2]{\prod\limits_{#1}^{#2}} \newcommand{\ProdInline}[2]{\prod_{#1}^{#2}} \newcommand{\TensorProduct}{\otimes} \newcommand{\Sum}[2] { % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \if\relax\detokenize{#2}\relax % \sum\limits_{#1} % \else \sum\limits_{#1}^{#2} % COMMENTED OUT FOLLOWING PREVIOUS INSTANCES % \fi } \newcommand{\SumInline}[2]{\sum_{#1}^{#2}} \newcommand{\Rank}[1]{\operatorname{rank}(#1)} \newcommand{\Nullity}[1]{\operatorname{null}(#1)} \newcommand{\Image}{\operatorname{image}} \newcommand{\Range}{\operatorname{range}} \newcommand{\Inverse}[1]{\left(#1\right)^{-1}} \newcommand{\inverse}[1]{\overline{#1}} % clean up \newcommand{\Transpose}[1]{\left(#1\right)^{T}} \newcommand{\InvTrans}[1]{\left(#1\right)^{-T}} \newcommand{\Complement}[1]{\overbar{#1}} \newcommand{\Adjoint}[1]{\left(#1\right)^*} \newcommand{\OrthogonalComplement}[1]{\left(#1\right)^\perp} \newcommand{\Det}[1]{\QFO{\operatorname{det}}{#1}} \newcommand{\DCT}{\operatorname{DCT}} \newcommand{\IDCT}{\operatorname{IDCT}} \newcommand{\RealPart}[1]{\QFO{\mathfrak{R}}{#1}} \newcommand{\Trace}[1]{\QFO{\operatorname{tr}}{#1}} \newcommand{\Dev}[1]{\QFO{\operatorname{dev}}{#1}} \newcommand{\DevDef}[1]{\Dev{#1} \DefEq #1 - \frac{1}{3}\Trace{#1}\Identity} \newcommand{\dual}[1]{{\bar{#1}}} \newcommand{\symind}[1]{{\uppercase{#1}}} \newcommand{\symmetrizer}{{S}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% % Bases %%%%%%%%%%%%%%%%%%%%%%%%%%%% \newcommand{\BasisFuncCoeff}[2]{\QSB{#1}{#2}} \newcommand{\BasisVec}[2]{\QSB{#1}{#2}} \newcommand{\BasisVecChildOf}[3]{\SQFOCO{#1}{#2}{#3}{}} \newcommand{\OrthogonalBasisVec}[2]{\SQFOCO{#1}{#2}{\perp}{}} \newcommand{\OrthonormalBasisVec}[2]{\overbar{\OrthogonalBasisVec{#1}{#2}}} \newcommand{\PolynomialDegree}{p} \newcommand{\BasisFuncId}{i} \newcommand{\BasisFuncIdAlt}{j} \newcommand{\BasisFuncIdAltAlt}{k} \newcommand{\BasisFunc}[3]{\SQFO{#1}{#2}{#3}} \newcommand{\PowerBasisFunc}[2]{\QCO{#2}{#1}} \newcommand{\LegendreBasisFunc}[2]{\SQFO{\Func[P]}{#1}{#2}} \newcommand{\PreNormalizedLegendreBasisFunc}[2]{\hat{\LegendreBasisFunc{#1}{#2}}} \newcommand{\ChebyshevBasisFunc}[2]{\SQFO{\Func[T]}{#1}{#2}} \newcommand{\ChebyshevZeros}[1]{\QSB{z}{#1}} \newcommand{\ChebyshevExtremizers}[1]{\QSB{t}{#1}} \newcommand{\BernToChebMat}{\Mat{T}} \newcommand{\Chebfun}[3]{\biggl(\, \sum_{#2=0}^{#1}{#3}_{#2}\ChebyshevBasisFunc{#2}{}\biggr)} \newcommand{\ChebfunVector}[1]{\left[#1\right]_c} \newcommand{\LagrangeBasisFunc}[3]{\SQFOCO{\Func[L]}{#1}{#2}{#3}} % properties \newcommand{\Span}{\operatorname{span}} \newcommand{\Dim}{\operatorname{dim}} \newcommand{\Support}[1]{\operatorname{supp}(#1)} \newcommand{\SupportPos}[1]{\operatorname{supp}_{+}(#1)} % operations \newcommand{\SumBasis}[4]{\Sum{#1}{#2}{#3}_{#1}{#4}_{#1}} \newcommand{\SumInlineBasis}[4]{\SumInline{#1}{#2}{#3}_{#1}{#4}_{#1}} %%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Calculus %%%%%%%%%%%%%%%%%%%%%%%%%%%% % limits \newcommand{\EvaluateTwoLimits}[3]{#1\biggr\rvert_{#2}^{#3}} \newcommand{\EvaluateOneLimit}[2]{\left.#1\right\rvert_{#2}} \newcommand{\Limit}[2]{\lim\limits_{#1\rightarrow #2}} \newcommand{\LimitInline}[2]{\lim_{#1\rightarrow #2}} \newcommand{\DNE}{\operatorname{DNE}} % differentiation \newcommand{\LagrangeDeriv}[1]{{#1}'} \newcommand{\KthLagrangeDeriv}[2]{{#1}^{(#2)}} \newcommand{\LeibnizSubDeriv}[2]{{#1}_{,#2}} \newcommand{\LeibnizFracDeriv}[2]{\frac{d}{d#2}{#1}} \newcommand{\KthLeibnizFracDeriv}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1](#3)} \newcommand{\KthLeibnizFracSpecificFunction}[3]{\frac{d^{#2}}{d#3^{#2}}\Func[#1]} \newcommand{\Differential}[1][x]{\, \operatorname{d}{#1}} \newcommand{\FrechetDeriv}[2]{D{#1}\left(#2\right)} \newcommand{\GateauxDirectionBold}[1]{\Vec{\delta}#1} \newcommand{\GateauxDirection}[1]{\delta #1} \newcommand{\GateauxDerivBold}[2]{D#1(#2; \GateauxDirectionBold{#2})} \newcommand{\GateauxDeriv}[2]{D#1(#2; \GateauxDirection{#2})} \newcommand{\GateauxDerivWithDirection}[3]{D#1\left(#2 \ ;\ #3\right)} \newcommand{\GateauxDerivPartial}[2]{\frac{\partial #1}{\partial #2}} \newcommand{\KthGateauxDerivPartial}[3]{\frac{\partial^{#3} #1}{\partial #2^{#3}}} \newcommand{\Grad}[2]{\boldsymbol{\nabla}^{#1} #2} \newcommand{\Jac}{\Mat{J}} \newcommand{\Div}[2]{\boldsymbol{\nabla}^{#1} \bcdot #2} \newcommand{\Laplace}[2]{\boldsymbol{\Delta}^{#1} #2} \newcommand{\TaylorSeries}[2]{\mathcal{T}\left[\Func[#1]\right](#2)} \newcommand{\TruncatedTaylorSeries}[3]{\mathcal{T}_{#1}\left[\Func[#2]\right]\left(#3\right)} % integration \newcommand{\Int}[2]{\int\limits_{#1}^{#2}} \newcommand{\IntDomain}[1]{\int\limi$