Ejemplo n.º 1
0
from proteus.default_p import *
from math import *
try:
    from .risingBubble import *
except:
    from risingBubble import *
from proteus.mprans import RDLS3P
"""
The redistancing equation in the sloshbox test problem.
"""

LevelModelType = RDLS3P.LevelModel
coefficients = RDLS3P.Coefficients(applyRedistancing=applyRedistancing,
                                   epsFact=epsFact_redistance,
                                   nModelId=LS_model,
                                   rdModelId=RD_model,
                                   useMetrics=useMetrics,
                                   ELLIPTIC_REDISTANCING=ELLIPTIC_REDISTANCING,
                                   alpha=alpha_REDISTANCING)


def getDBC_rd(x, flag):
    pass


dirichletConditions = {0: getDBC_rd}
weakDirichletConditions = {0: RDLS3P.setZeroLSweakDirichletBCsSimple}

advectiveFluxBoundaryConditions = {}
diffusiveFluxBoundaryConditions = {0: {}}
Ejemplo n.º 2
0
from proteus import *
from proteus.default_p import *
from math import *
from vortex2D import *
from proteus.mprans import RDLS3P
import ncls3P_p
name = soname + "_rdls"
LevelModelType = RDLS3P.LevelModel

coefficients = RDLS3P.Coefficients(
    applyRedistancing=True,
    epsFact=epsFactRedistance,
    nModelId=0,
    rdModelId=1,
    useMetrics=useMetrics,
    ELLIPTIC_REDISTANCING=ct.ELLIPTIC_REDISTANCING,
    ELLIPTIC_REDISTANCING_TYPE=ct.ELLIPTIC_REDISTANCING_TYPE,
    alpha=ct.alpha)


#now define the Dirichlet boundary conditions
def getDBC(x, flag):
    pass


dirichletConditions = {0: getDBC}

if LevelModelType == RDLS3P.LevelModel:
    weakDirichletConditions = {0: RDLS3P.setZeroLSweakDirichletBCsSimple}
else:
    weakDirichletConditions = {0: coefficients.setZeroLSweakDirichletBCs}
Ejemplo n.º 3
0
ct = Context.get()
domain = ct.domain
nd = domain.nd
mesh = domain.MeshOptions

genMesh = mesh.genMesh
movingDomain = ct.movingDomain
T = ct.T

LevelModelType = RDLS3P.LevelModel

coefficients = RDLS3P.Coefficients(
    applyRedistancing=ct.applyRedistancing,
    epsFact=ct.epsFact_redistance,
    nModelId=ct.LS_model,
    rdModelId=ct.RD_model,
    useMetrics=ct.useMetrics,
    backgroundDiffusionFactor=ct.backgroundDiffusionFactor)


def getDBC_rd(x, flag):
    pass


dirichletConditions = {0: getDBC_rd}
weakDirichletConditions = {0: RDLS3P.setZeroLSweakDirichletBCsSimple}

advectiveFluxBoundaryConditions = {}
diffusiveFluxBoundaryConditions = {0: {}}
Ejemplo n.º 4
0
from proteus import *
from proteus.default_p import *
from math import *
from vortex2D import *
#from proteus.mprans import RDLS
from proteus.mprans import RDLS3P as RDLS

import ncls_p
name = soname + "_rdls"
LevelModelType = RDLS.LevelModel

coefficients = RDLS.Coefficients(
    applyRedistancing=True,
    epsFact=epsFactRedistance,
    nModelId=0,
    rdModelId=1,
    useMetrics=useMetrics,
    ELLIPTIC_REDISTANCING=ct.ELLIPTIC_REDISTANCING,
    backgroundDissipationEllipticRedist=1.0,
    alpha=1E9)


#now define the Dirichlet boundary conditions
def getDBC(x, flag):
    pass


dirichletConditions = {0: getDBC}

if LevelModelType == RDLS.LevelModel:
    weakDirichletConditions = {0: RDLS.setZeroLSweakDirichletBCsSimple}
Ejemplo n.º 5
0
parallelPartitioningType = mesh.parallelPartitioningType
nLayersOfOverlapForParallel = mesh.nLayersOfOverlapForParallel
restrictFineSolutionToAllMeshes = mesh.restrictFineSolutionToAllMeshes
triangleOptions = mesh.triangleOptions

elementQuadrature = ct.elementQuadrature
elementBoundaryQuadrature = ct.elementBoundaryQuadrature

femSpaces = {0: ct.basis}
elementQuadrature = ct.elementQuadrature
elementBoundaryQuadrature = ct.elementBoundaryQuadrature

massLumping = False
numericalFluxType = NumericalFlux.DoNothing
conservativeFlux = None
subgridError = RDLS3P.SubgridError(physics.coefficients, nd)
shockCapturing = RDLS3P.ShockCapturing(
    physics.coefficients,
    nd,
    shockCapturingFactor=ct.rd_shockCapturingFactor,
    lag=ct.rd_lag_shockCapturing)

fullNewtonFlag = True
multilevelNonlinearSolver = NonlinearSolvers.Newton
levelNonlinearSolver = NonlinearSolvers.Newton

nonlinearSmoother = NonlinearSolvers.NLGaussSeidel
linearSmoother = None

matrix = LinearAlgebraTools.SparseMatrix