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: {}}
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}
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: {}}
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}
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