proteus.SubgridError module
A class hierarchy for subgrid error estimation methods (multiscale methods)
- class proteus.SubgridError.SGE_base(coefficients, nd, lag=False, trackSubScales=False)[source]
Bases:
object
- class proteus.SubgridError.Advection_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.AdvectionLag_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.AdvectionDiffusionReaction_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.FFDarcyFC_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_basebasic stablization for TwophaseDarcy_fc_ff, only ‘mixture’ equation has advection term ‘w’ phase equation has nonlinear diffusion wrt mixture potential, ‘mixture’ equation has two nonlinear diffusion terms
- class proteus.SubgridError.DarcyFC_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_basebasic stablization for TwophaseDarcy_fc, no advection term ‘w’ phase and ‘n’ phase have nonlinear diffusion wrt to their own potential phi_w = psi_w, phi_n = psi_w + psi_c
- class proteus.SubgridError.HamiltonJacobi_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.HamiltonJacobiDiffusionReaction_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.HamiltonJacobi_ASGS_opt(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.StokesStabilization_1(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
Bases:
SGE_base
Bases:
SGE_base
Bases:
SGE_base
- class proteus.SubgridError.TwophaseStokes_LS_FC_ASGS(coefficients, nd, stabFlag='1', lag=False)[source]
Bases:
SGE_base
- class proteus.SubgridError.AdvectionDiffusionReactionTransientSubscales_ASGS(coefficients, nd, stabFlag='1', lag=False, trackSubScales=False, useHarariDirectly=False, limit_tau_t=False, tau_t_limit_min=0.0, tau_t_limit_max=1.0)[source]
Bases:
AdvectionDiffusionReaction_ASGStrack subgrid scales in time with Backward Euler
\[ \begin{align}\begin{aligned}\delta u^{n+1} &= -\tau_t\tilde{R}_h\\\tilde{R}_h &= R_h - m^{\prime,k}\frac{\delta u^{n}}{\Delta t^{n+1}}\\\tau_t &= \frac{\Delta t^{n+1}\tau_s}{m^{prime,n+1}\tau_s + \Delta t^{n+1}}\\\tau_s &= \text{normal spatial tau, supposed to have } \tau_s \approx \mathcal{L}^{-1}_{s}\end{aligned}\end{align} \]for now m^{prime} evaluated at k=n for subgrid error but not sure if this is right or not
- class proteus.SubgridError.AdvectionDiffusionReactionHaukeSangalliInterpolant_ASGS(coefficients, nd, stabFlag='1', lag=False, interpolationFemSpaceType=None, tau_00_force=None, tau_11_force=None)[source]
Bases:
SGE_baseShould be basic Hauke Sangalli approach but computes terms at interpolation points and then uses this to compute the gradient for Sangalli type approach Adjoint gradient is computed manually
- initializeTimeIntegration(timeIntegration)[source]
allow for connection with time integration method if tracking subscales
- calculateSubgridErrorInterpolants(ci)[source]
should interpolate strong residual. One problem is that strong residual is discontinuous when grad(u) terms are nonzero so standard C0 projection won’t necessarily be what we expect locally on each element for C0, P1 and linear problem with constant coefficients computing gradient locally should be just the same as ignoring gradient terms altogether
- class proteus.SubgridError.AdvectionDiffusionReactionHaukeSangalliInterpolantWithTransientSubScales_ASGS(coefficients, nd, stabFlag='1', lag=False, interpolationFemSpaceType=None, trackSubScales=False, tau_00_force=None, tau_11_force=None, includeSubgridScalesInGradientStabilization=True)[source]
Bases:
AdvectionDiffusionReactionHaukeSangalliInterpolant_ASGSShould be basic Hauke Sangalli approach but computes terms at interpolation points and then uses this to compute the gradient for Sangalli type approach Adjoint gradient is computed manually And SubScales are tracked in time
- calculateSubgridErrorInterpolants(ci)[source]
should interpolate strong residual. One problem is that strong residual is discontinuous when grad(u) terms are nonzero so standard C0 projection won’t necessarily be what we expect locally on each element for C0, P1 and linear problem with constant coefficients computing gradient locally should be just the same as ignoring gradient terms altogether
Bases:
NavierStokesASGS_velocity_pressureallow for connection with time integration method if tracking subscales
incorporate subgrid scale mass accumulation delta m^{n}/delta t^{n+1}