Example #1
0
ct = Context.get()
domain = ct.domain
nd = domain.nd
mesh = domain.MeshOptions

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

LevelModelType = NCLS.LevelModel

coefficients = NCLS.Coefficients(V_model=0,
                                 RD_model=3,
                                 ME_model=2,
                                 checkMass=False, 
                                 useMetrics=ct.useMetrics,
                                 epsFact=ct.ecH,
                                 sc_uref=ct.ls_sc_uref,
                                 sc_beta=ct.ls_sc_beta,
                                 movingDomain=movingDomain)

def getDBC_ls(x,flag):
    if flag == ct.tank.boundaryTags['x+']:
        return lambda x,t: x[1] - ct.inflow_level
    elif flag == ct.tank.boundaryTags['x-']:
        return lambda x,t: x[1] - ct.inflow_level

dirichletConditions = {0: lambda x, flag: None}
advectiveFluxBoundaryConditions =  {0: lambda x, flag: None}
diffusiveFluxBoundaryConditions = {0: {}}
Example #2
0
parallelPartitioningType = ct.parallelPartitioningType
nLayersOfOverlapForParallel = ct.nLayersOfOverlapForParallel
restrictFineSolutionToAllMeshes = ct.restrictFineSolutionToAllMeshes
triangleOptions = ct.triangleOptions

timeIntegration = TimeIntegration.BackwardEuler_cfl
stepController  = StepControl.Min_dt_controller

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

massLumping       = False
conservativeFlux  = None
numericalFluxType = NCLS.NumericalFlux
subgridError      = NCLS.SubgridError(physics.coefficients, ct.nd)
shockCapturing    = NCLS.ShockCapturing(physics.coefficients,
                                        ct.nd,
                                        shockCapturingFactor = ct.ls_shockCapturingFactor,
                                        lag = ct.ls_lag_shockCapturing)

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

nonlinearSmoother = None
linearSmoother    = None

matrix = LinearAlgebraTools.SparseMatrix

if ct.opts.parallel:
from proteus import *
from proteus.default_p import *
from obstacleInTank3d import *
from proteus.mprans import NCLS

LevelModelType = NCLS.LevelModel

coefficients = NCLS.Coefficients(V_model=0,
                                 RD_model=3,
                                 ME_model=1,
                                 checkMass=False,
                                 useMetrics=useMetrics,
                                 sc_uref=ls_sc_uref,
                                 sc_beta=ls_sc_beta)


def getDBC_ls(x, flag):
    pass


dirichletConditions = {0: getDBC_ls}


class Shock_phi:
    def uOfXT(self, x, t):
        return shockSignedDistance(x)


initialConditions = {0: Shock_phi()}

fluxBoundaryConditions = {0: 'outFlow'}
Example #4
0
from proteus import *
from proteus.default_p import *
from tank import *
from proteus.mprans import NCLS

LevelModelType = NCLS.LevelModel

coefficients = NCLS.Coefficients(V_model=0,
                                 RD_model=3,
                                 ME_model=2,
                                 checkMass=False,
                                 useMetrics=useMetrics,
                                 epsFact=epsFact_consrv_heaviside,
                                 sc_uref=ls_sc_uref,
                                 sc_beta=ls_sc_beta)


def getDBC_ls(x, flag):
    if flag == boundaryTags['left']:
        return wavePhi
    else:
        return None


dirichletConditions = {0: getDBC_ls}

advectiveFluxBoundaryConditions = {}
diffusiveFluxBoundaryConditions = {0: {}}


class PerturbedSurface_phi:
Example #5
0
domain = ct.domain
nd = domain.nd
mesh = domain.MeshOptions


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

LevelModelType = NCLS.LevelModel

coefficients = NCLS.Coefficients(V_model=int(ct.movingDomain)+0,
                                 RD_model=int(ct.movingDomain)+3,
                                 ME_model=int(ct.movingDomain)+2,
                                 checkMass=False,
                                 useMetrics=ct.useMetrics,
                                 epsFact=ct.epsFact_consrv_heaviside,
                                 sc_uref=ct.ls_sc_uref,
                                 sc_beta=ct.ls_sc_beta,
                                 movingDomain=ct.movingDomain)

dirichletConditions = {0: lambda x, flag: None}

advectiveFluxBoundaryConditions = {}

diffusiveFluxBoundaryConditions = {0: {}}

class PHI_IC:
    def uOfXT(self, x, t):
        return x[nd-1] - ct.water_level
Example #6
0
                                      V_model=None,
                                      RD_model=None,
                                      ME_model=0,
                                      checkMass=False,
                                      epsFact=0.0,
                                      useMetrics=1.0,
                                      STABILIZATION_TYPE=2,
                                      LUMPED_MASS_MATRIX=False,
                                      ENTROPY_TYPE=2,
                                      FCT=True,
                                      num_fct_iter=1)
elif useNCLS:
    LevelModelType = NCLS.LevelModel
    coefficients = NCLS.Coefficients(V_model=None,
                                     RD_model=None,
                                     ME_model=0,
                                     checkMass=False,
                                     epsFact=0.0,
                                     useMetrics=1.0)
elif useVOF:
    LevelModelType = VOF.LevelModel
    coefficients = VOF.Coefficients(LS_model=None,
                                    V_model=None,
                                    RD_model=None,
                                    ME_model=0,
                                    checkMass=False,
                                    epsFact=0.0,
                                    useMetrics=1.0,
                                    FCT=False)
elif useHJ:
    coefficients = ConstantVelocityLevelSet(b=velocity)
else:
Example #7
0
    #stepController = FLCBDF_controller
    stepController = StepControl.Min_dt_cfl_controller
    time_tol = 10.0 * ls_nl_atol_res
    atol_u = {0: time_tol}
    rtol_u = {0: time_tol}
else:
    timeIntegration = TimeIntegration.BackwardEuler_cfl
    stepController = StepControl.Min_dt_cfl_controller

femSpaces = {0: basis}

massLumping = False
conservativeFlux = None
numericalFluxType = NCLS.NumericalFlux

subgridError = NCLS.SubgridError(coefficients=physics.coefficients,
                                 nd=domain.nd)
shockCapturing = NCLS.ShockCapturing(
    physics.coefficients,
    domain.nd,
    shockCapturingFactor=ls_shockCapturingFactor,
    lag=ls_lag_shockCapturing)

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

nonlinearSmoother = None
linearSmoother = None

matrix = LinearAlgebraTools.SparseMatrix