proteus.NumericalFlux module

A class hierarchy for numerical flux (numerical trace) computations

Inheritance diagram of proteus.NumericalFlux

class proteus.NumericalFlux.NF_base(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, parallelPeriodic=False)[source]

Bases: object

useWeakDirichletConditions = True[source]
useStrongDirichletConstraints = False[source]
hasInterior = True[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
setFromOptions(nOptions)[source]

allow classes to set various numerical parameters

class proteus.NumericalFlux.DoNothing(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
class proteus.NumericalFlux.NoFlux(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, parallelPeriodic=False)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.StrongDirichlet(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

useWeakDirichletConditions = False[source]
hasInterior = False[source]
setFluxBoundaryConditions()[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
proteus.NumericalFlux.StrongDirichletFactory(fluxBoundaryConditionsDict={})[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_Diagonal_average(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_SIPG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG

class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_NIPG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG

class proteus.NumericalFlux.Advection_DiagonalUpwind_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.ConstantAdvection_Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.ConstantAdvection_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

useStrongDirichletConstraints = True[source]
hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.MixedDarcy_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_NIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG_exterior

class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG_exterior

class proteus.NumericalFlux.ConstantAdvection_Diffusion_NIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.ConstantAdvection_Diffusion_IIPG_exterior

class proteus.NumericalFlux.ConstantAdvection_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.ConstantAdvection_Diffusion_IIPG_exterior

class proteus.NumericalFlux.Advection_DiagonalUpwind_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Curvature_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Stokes_Advection_DiagonalUpwind_Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]

To use with regular Stokes, takes advantage of existence of ‘advectiveFlux’ flag even when there is no advective term

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Stokes_Advection_DiagonalUpwind_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.Stokes_Advection_DiagonalUpwind_Diffusion_IIPG_exterior

class proteus.NumericalFlux.StokesP_Advection_DiagonalUpwind_Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]

Weak boundary fluxes for StokesP

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.NavierStokes_Advection_DiagonalUpwind_Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.NavierStokes_Advection_DiagonalUpwind_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NavierStokes_Advection_DiagonalUpwind_Diffusion_IIPG_exterior

hasInterior = False[source]
class proteus.NumericalFlux.Diffusion_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.Diffusion_IIPG_exterior

class proteus.NumericalFlux.DarcySplitPressure_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

weak dirichlet boundary conditions for Twophase_split_pressure class

Diffusion_IIPG_exterior is ok except for need to switch between psi_w and psi_n bc types

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Diffusion_LDG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

initial LDG numerical flux for pure diffusion

calculateDiffusionSplittings(q, ebq, ebq_global)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_LDG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Diffusion_LDG

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.RusanovNumericalFlux_Diagonal(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind

apply numerical flux fnum(a,b)=1/2(f(a)+f(b)λ¯(ba) where λ>=max|f|fora<=u<=b

this one applies flux to each component of flux separately

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
class proteus.NumericalFlux.RusanovNumericalFlux_Diagonal_Diffusion_IIPG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind_Diffusion_IIPG

apply numerical flus fnum(a,b)=1/2(f(a)+f(b)λ¯(ba) where λ>=max|f| for a<=u<=b this one applies flux to each component of flux separately

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
class proteus.NumericalFlux.ConvexOneSonicPointNumericalFlux(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions, sonicPoint=0.0, sonicFlux=0.0)[source]

Bases: proteus.NumericalFlux.Advection_DiagonalUpwind

basic Godunov flux fnum(a,b)=maxb<=u<=af(u) if a>=b=mina<=u<=bf(u) otherwise where there is only one sonic point, us with f(us)=0 and f is convex so f(us) is a minimum

This class typically has to be “wrapped” for a given problem to specify the correct sonic point and sonic flux

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
class proteus.NumericalFlux.HamiltonJacobi_DiagonalLesaintRaviart(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, speedEvaluationType=2)[source]

Bases: proteus.NumericalFlux.NF_base

setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.HamiltonJacobi_DiagonalLesaintRaviart_Diffusion_IIPG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, speedEvaluationType=1)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.HamiltonJacobi_DiagonalLesaintRaviart_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, speedEvaluationType=1)[source]

Bases: proteus.NumericalFlux.Diffusion_SIPG_exterior

setDirichletValues(ebqe)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.HamiltonJacobi_Pressure_DiagonalLesaintRaviart_Diffusion_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, speedEvaluationType=1)[source]

Bases: proteus.NumericalFlux.HamiltonJacobi_DiagonalLesaintRaviart_Diffusion_SIPG_exterior

calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
class proteus.NumericalFlux.DarcyFCFF_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

weak dirichlet boundary conditions for Twophase_fc_ff class

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.DarcyFC_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

weak dirichlet boundary conditions for Twophase_fc class

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.DarcyFCPP_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

weak dirichlet boundary conditions for Twophase_fc class

hasInterior = False[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.ShallowWater_1D(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, h_eps=1e-08, tol_u=1e-08)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.ShallowWaterHLL_1D(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, h_eps=1e-08, tol_u=1e-08)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.ShallowWater_2D(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, h_eps=1e-08, tol_u=1e-08)[source]

Bases: proteus.NumericalFlux.NF_base

setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.RusanovNumericalFlux(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.RusanovNumericalFlux_Diagonal

Base class for Rusanov scheme for generic systems, relies on a user-specified estimate for the maximum (magnitude) eigenvalue for the system.

Default is to take

\lamda¯=max|fn

Then we just apply apply numerical flux

fnum(a,b)=1/2(f(a)+f(b)λ¯(ba)

For now, we will try to piggy back on the cfl calculation, assuming the user has implemented this correctly for the system in question

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
class proteus.NumericalFlux.RusanovLDG(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Diffusion_LDG

combine Rusanov flux for advection and LDG for diffusion right now advection jacobian is not calculated

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
class proteus.NumericalFlux.HamiltonJacobi_DiagonalChengShu(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None, speedEvaluationType=0)[source]

Bases: proteus.NumericalFlux.NF_base

calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Stress_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateInteriorNumericalFlux(q, ebq, ebq_global)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateInteriorNumericalFluxJacobian(l2g, q, ebq, ebq_global, dphi, fluxJacobian, fluxJacobian_eb, fluxJacobian_hj)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Stress_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions, getPeriodicBoundaryConditions=None)[source]

Bases: proteus.NumericalFlux.Stress_IIPG_exterior

hasInterior = False[source]
class proteus.NumericalFlux.Richards_IIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.NF_base

hasInterior = False[source]
setDirichletValues(ebqe)[source]
calculateExteriorNumericalFlux(inflowFlag, q, ebqe)[source]
updateExteriorNumericalFluxJacobian(l2g, inflowFlag, q, ebqe, dphi, fluxJacobian_exterior, fluxJacobian_eb, fluxJacobian_hj)[source]
class proteus.NumericalFlux.Richards_SIPG_exterior(vt, getPointwiseBoundaryConditions, getAdvectiveFluxBoundaryConditions, getDiffusiveFluxBoundaryConditions)[source]

Bases: proteus.NumericalFlux.Richards_IIPG_exterior

hasInterior = False[source]