コード例 #1
0
from proteus.default_p import *
from step import *
from proteus.mprans import RANS2P

LevelModelType = RANS2P.LevelModel
turbulenceClosureModel=3
if use_KOmega == True:
    turbulenceClosureModel=4
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   sigma=0.0,
                                   rho_0 = rho_0,
                                   nu_0 = nu_0,
                                   rho_1 = rho_0,
                                   nu_1 = nu_0,
                                   g=g,
                                   nd=nd,
                                   LS_model=1,
                                   Closure_0_model=3,
                                   Closure_1_model=4,
                                   turbulenceClosureModel=turbulenceClosureModel,
                                   epsFact_density=epsFact_density,
                                   stokes=False,
                                   useRBLES=useRBLES,
                                   useMetrics=useMetrics)

bcsTimeDependent = True

periodic = False

getDBC_p = twpflowPressure
getDBC_u = twpflowVelocity_u
getDBC_v = twpflowVelocity_v
コード例 #2
0
from proteus.default_p import *
import sys
from math import *
from wigley import *
from proteus.ctransportCoefficients import smoothedHeaviside
from proteus.ctransportCoefficients import smoothedHeaviside_integral
from proteus.mprans import RANS2P

LevelModelType = RANS2P.LevelModel
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   sigma=sigma_01,
                                   rho_0=rho_0,
                                   nu_0=nu_0,
                                   rho_1=rho_1,
                                   nu_1=nu_1,
                                   g=g,
                                   nd=nd,
                                   LS_model=1,
                                   epsFact_density=epsFact_density,
                                   stokes=useStokes,
                                   useRBLES=useRBLES,
                                   useMetrics=useMetrics)
coefficients.waterLevel = waterLevel


def velRamp(t):
    if rampInitialConditions and (t < 0.5 * residence_time):
        return (t / (0.5 * residence_time))
    else:
        return 1.0
コード例 #3
0
coefficients = RANS2P.Coefficients(
    epsFact=ct.epsFact_viscosity,
    sigma=0.0,
    rho_0=ct.rho_0,
    nu_0=ct.nu_0,
    rho_1=ct.rho_1,
    nu_1=ct.nu_1,
    g=ct.g,
    nd=nd,
    ME_model=int(ct.movingDomain) + 0,
    VF_model=int(ct.movingDomain) + 1,
    LS_model=int(ct.movingDomain) + LS_model,
    Closure_0_model=Closure_0_model,
    Closure_1_model=Closure_1_model,
    epsFact_density=ct.epsFact_density,
    stokes=False,
    useVF=ct.useVF,
    useRBLES=ct.useRBLES,
    useMetrics=ct.useMetrics,
    eb_adjoint_sigma=1.0,
    eb_penalty_constant=ct.weak_bc_penalty_constant,
    forceStrongDirichlet=ct.ns_forceStrongDirichlet,
    turbulenceClosureModel=ct.ns_closure,
    movingDomain=ct.movingDomain,
    porosityTypes=porosityTypes,
    dragAlphaTypes=dragAlphaTypes,
    dragBetaTypes=dragBetaTypes,
    epsFact_solid=epsFact_solid,
    barycenters=ct.domain.barycenters)
コード例 #4
0
        Closure_1_model += 1
else:
    Closure_0_model = None
    Closure_1_model = None

coefficients = RANS2P.Coefficients(epsFact=ct.epsFact_viscosity,
                                   sigma=0.0,
                                   rho_0=ct.rho_0,
                                   nu_0=ct.nu_0,
                                   rho_1=ct.rho_1,
                                   nu_1=ct.nu_1,
                                   g=ct.g,
                                   nd=nd,
                                   ME_model=0,
                                   VF_model=1,
                                   LS_model=LS_model,
                                   Closure_0_model=Closure_0_model,
                                   Closure_1_model=Closure_1_model,
                                   epsFact_density=ct.epsFact_density,
                                   stokes=False,
                                   useVF=ct.useVF,
                                   useRBLES=ct.useRBLES,
                                   useMetrics=ct.useMetrics,
                                   eb_adjoint_sigma=1.0,
                                   eb_penalty_constant=ct.weak_bc_penalty_constant,
                                   forceStrongDirichlet=ct.ns_forceStrongDirichlet,
                                   turbulenceClosureModel=ct.ns_closure)

dirichletConditions = {
    0: lambda x, flag: domain.bc[flag].p_dirichlet.init_cython(),
    1: lambda x, flag: domain.bc[flag].u_dirichlet.init_cython(),
    2: lambda x, flag: domain.bc[flag].v_dirichlet.init_cython()
コード例 #5
0
    epsFact_solid = domain.epsFact_solid
else:
    porosityTypes = None
    dragAlphaTypes = None
    dragBetaTypes = None
    epsFact_solid = None

# 1-phase definition
coefficients_1p = RANS2P.Coefficients(
    epsFact=user_param.epsFact_viscosity,
    rho_0=user_param.rho_water,
    nu_0=user_param.nu_water,
    rho_1=user_param.rho_air,
    nu_1=user_param.nu_air,
    g=user_param.gravity,
    nd=user_param.nd,
    LS_model=None,
    epsFact_density=user_param.epsFact_density,
    stokes=False,
    forceStrongDirichlet=False,
    eb_adjoint_sigma=1.0,
    eb_penalty_constant=10.0,
    useRBLES=0.0,
    useMetrics=1.0)
'''
print( 'turn off by xwang' )
coefficients_2p = RANS2P.Coefficients(
  epsFact                = epsFact_viscosity,
  sigma                  = 0.0,
  rho_0                  = rho_0,
  nu_0                   = nu_0,
  rho_1                  = rho_1,
コード例 #6
0
LevelModelType = RANS2P.LevelModel

coefficients = RANS2P.Coefficients(
    epsFact=epsFact_viscosity,
    rho_0=rho_0,
    nu_0=nu_0,
    rho_1=rho_1,
    nu_1=nu_1,
    g=g,
    nd=nd,
    LS_model=None,
    epsFact_density=epsFact_density,
    stokes=False,  #useStokes,
    forceStrongDirichlet=ct.forceStrongDirichlet,
    eb_adjoint_sigma=1.0,
    eb_penalty_constant=100.0,
    useRBLES=0.0,
    useMetrics=1.0,
    use_ball_as_particle=use_ball_as_particle,
    ball_center=ball_center,
    ball_radius=ball_radius,
    ball_velocity=ball_velocity,
    ball_angular_velocity=ball_angular_velocity,
    nParticles=nParticles,
    particle_epsFact=1.5,
    particle_alpha=1000.0,
    particle_beta=1000.0,
    particle_penalty_constant=100.0,
    NONCONSERVATIVE_FORM=ct.nonconservative)

コード例 #7
0
    Closure_1_model = None

if spongeLayer or levee or slopingSpongeLayer:
    coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                       sigma=0.0,
                                        rho_0 = rho_0,
                                        nu_0 = nu_0,
                                        rho_1 = rho_1,
                                        nu_1 = nu_1,
                                        g=g,
                                        nd=nd,
                                        VF_model=1,
                                        LS_model=LS_model,
                                        Closure_0_model=Closure_0_model,
                                        Closure_1_model=Closure_1_model,
                                        epsFact_density=epsFact_density,
                                        stokes=False,
                                        useVF=useVF,
                                        useRBLES=useRBLES,
                                        useMetrics=useMetrics,
                                        eb_adjoint_sigma=1.0,
                                        eb_penalty_constant=weak_bc_penalty_constant,
                                        forceStrongDirichlet=ns_forceStrongDirichlet,
                                        turbulenceClosureModel=ns_closure,
                                        movingDomain=movingDomain,
                                        porosityTypes=porosityTypes,
                                        dragAlphaTypes=dragAlphaTypes,
                                        dragBetaTypes=dragBetaTypes,
                                        epsFact_solid = epsFact_solidTypes)
else:
    coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                       sigma=0.0,
コード例 #8
0
LevelModelType = RANS2P.LevelModel

coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                     rho_0=rho_0,
                                     nu_0=nu_0,
                                     rho_1=rho_1,
                                     nu_1=nu_1,
                                     g=g,
                                     nd=nd,
                                     LS_model=None,
                                     epsFact_density=epsFact_density,
                                     stokes=False,#useStokes,
                                     forceStrongDirichlet=ct.forceStrongDirichlet,
                                     eb_adjoint_sigma=1.0,
                                     eb_penalty_constant=10.0,
                                     useRBLES=0.0,
                                     useMetrics=1.0,
                                     use_ball_as_particle=use_ball_as_particle,
                                     ball_center=ball_center,
                                     ball_radius=ball_radius,
                                     ball_velocity=ball_velocity,
                                     ball_angular_velocity=ball_angular_velocity,
                                     nParticles = nParticles,
                                     NONCONSERVATIVE_FORM = ct.nonconservative,
                                     MOMENTUM_SGE=ct.use_supg,
                                     PRESSURE_SGE=ct.use_supg,
                                     VELOCITY_SGE=ct.use_supg,
                                     PRESSURE_PROJECTION_STABILIZATION=0.0)
#===============================================================================
# BC
#===============================================================================
コード例 #9
0
LevelModelType = RANS2P.LevelModel

turbulenceClosureModel = 3 #K-Epsilon
if dissipation_model_flag >= 2:
    turbulenceClosureModel = 4 #K-Omega
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   sigma=0.0,
                                   rho_0 = rho_0,
                                   nu_0 = nu_0,
                                   rho_1 = rho_0,
                                   nu_1 = nu_0,
                                   g=g,
                                   nd=nd,
                                   LS_model=1,
                                   Closure_0_model=3,
                                   Closure_1_model=4,
                                   turbulenceClosureModel=turbulenceClosureModel,
                                   epsFact_density=epsFact_density,
                                   stokes=False,
                                   useRBLES=useRBLES,
                                   useMetrics=useMetrics,
                                   useVF=1.0,
                                   eb_adjoint_sigma=1.0,
                                   eb_penalty_constant=100.,
                                   forceStrongDirichlet=True)

getDBC_p = twpflowPressure
getDBC_u = twpflowVelocity_u
getDBC_v = twpflowVelocity_v

dirichletConditions = {0:getDBC_p,
コード例 #10
0
from proteus.default_p import *
from wavetank import *
from proteus.mprans import RANS2P

LevelModelType = RANS2P.LevelModel

if spongeLayer or levee:
    coefficients = RANS2P.Coefficients(
        epsFact=epsFact_viscosity,
        sigma=0.0,
        rho_0=rho_0,
        nu_0=nu_0,
        rho_1=rho_1,
        nu_1=nu_1,
        g=g,
        nd=nd,
        LS_model=1,
        epsFact_density=epsFact_density,
        stokes=False,
        useRBLES=useRBLES,
        useMetrics=useMetrics,
        porosityTypes=porosityTypes,
        meanGrainSizeTypes=meanGrainSizeTypes,
        killNonlinearDrag=killNonlinearDragInSpongeLayer)
else:
    coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                       sigma=0.0,
                                       rho_0=rho_0,
                                       nu_0=nu_0,
                                       rho_1=rho_1,
                                       nu_1=nu_1,
コード例 #11
0
try:
    from .cylinder2d import *
except:
    from cylinder2d import *
from proteus.mprans import RANS2P
name = "rans2p"
bcsTimeDependent = True
LevelModelType = RANS2P.LevelModel
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   NONCONSERVATIVE_FORM=0.0,
                                   rho_0=rho,
                                   nu_0=nu,
                                   rho_1=rho,
                                   nu_1=nu,
                                   g=g,
                                   nd=nd,
                                   LS_model=None,
                                   epsFact_density=epsFact_density,
                                   stokes=False,
                                   forceStrongDirichlet=False,
                                   eb_adjoint_sigma=1.0,
                                   eb_penalty_constant=100.0,
                                   useRBLES=0.0,
                                   useMetrics=1.0)


def vel(x, t):
    U = Um * x[1] * (fl_H - x[1]) / (old_div(fl_H, 2.0))**2
    if t < 2.0:
        return t * U / 2.0
    else:
        return U
コード例 #12
0
ファイル: duct.py プロジェクト: mhartman88/proteus
initialConditions = p.analyticalSolution

p.coefficients = RANS2P.Coefficients(
    epsFact=1.5,
    sigma=0.0,
    rho_0=rho,
    nu_0=nu,
    rho_1=rho,
    nu_1=nu,
    g=gravity,
    nd=p.nd,
    ME_model=0,
    VF_model=None,
    LS_model=None,
    Closure_0_model=None,
    Closure_1_model=None,
    epsFact_density=1.5,
    stokes=False,
    useVF=0.0,
    useRBLES=0.0,
    useMetrics=1.0,
    eb_adjoint_sigma=1.0,
    eb_penalty_constant=100.0,
    forceStrongDirichlet=not opts.weak,
    turbulenceClosureModel=0,
    NONCONSERVATIVE_FORM=1.0,
    MOMENTUM_SGE=0.0 if opts.useTaylorHood else 1.0,
    PRESSURE_SGE=0.0 if opts.useTaylorHood else 1.0,
    VELOCITY_SGE=0.0 if opts.useTaylorHood else 1.0,
    nullSpace=nullSpace)
#analyticalSolution=p.analyticalSolution)
コード例 #13
0
    Closure_0_model = None
    Closure_1_model = None

coefficients = RANS2P.Coefficients(
    epsFact=ct.epsFact_viscosity,
    sigma=0.0,
    rho_0=ct.rho_0,
    nu_0=ct.nu_0,
    rho_1=ct.rho_1,
    nu_1=ct.nu_1,
    g=ct.g,
    nd=nd,
    ME_model=int(ct.movingDomain) + 0,
    VF_model=int(ct.movingDomain) + 1,
    LS_model=int(ct.movingDomain) + LS_model,
    Closure_0_model=Closure_0_model,
    Closure_1_model=Closure_1_model,
    epsFact_density=ct.epsFact_density,
    stokes=False,
    useVF=ct.useVF,
    useRBLES=ct.useRBLES,
    useMetrics=ct.useMetrics,
    eb_adjoint_sigma=1.0,
    eb_penalty_constant=ct.weak_bc_penalty_constant,
    forceStrongDirichlet=ct.ns_forceStrongDirichlet,
    turbulenceClosureModel=ct.ns_closure,
    movingDomain=ct.movingDomain,
    LAG_LES=1.0,
    NONCONSERVATIVE_FORM=0.0)

dirichletConditions = {
    0: lambda x, flag: domain.bc[flag].p_dirichlet.init_cython(),
コード例 #14
0
from proteus import *
from proteus.default_p import *
from sloshbox3d import *
from proteus.mprans import RANS2P

useOpt = True  #False
if useOpt:
    LevelModelType = RANS2P.LevelModel
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   sigma=0.0,
                                   rho_0=rho_0,
                                   nu_0=nu_0,
                                   rho_1=rho_1,
                                   nu_1=nu_1,
                                   g=g,
                                   nd=nd,
                                   LS_model=1,
                                   epsFact_density=epsFact_density,
                                   stokes=useStokes)
コード例 #15
0
coefficients = RANS2P.Coefficients(epsFact=ct.epsFact_viscosity,
                                   sigma=0.0,
                                   rho_0=ct.rho_0,
                                   nu_0=ct.nu_0,
                                   rho_1=ct.rho_1,
                                   nu_1=ct.nu_1,
                                   g=ct.g,
                                   nd=nd,
                                   # ME_model=int(ct.movingDomain)+0,
                                   # VF_model=int(ct.movingDomain)+1,
                                   # LS_model=int(ct.movingDomain)+LS_model,
                                   ME_model = 0,
                                   VF_model = 1,
                                   LS_model = LS_model,
                                   Closure_0_model=Closure_0_model,
                                   Closure_1_model=Closure_1_model,
                                   epsFact_density=ct.epsFact_density,
                                   stokes=False,
                                   useVF=ct.useVF,
                                   useRBLES=ct.useRBLES,
                                   useMetrics=ct.useMetrics,
                                   eb_adjoint_sigma=1.0,
                                   eb_penalty_constant=ct.weak_bc_penalty_constant,
                                   forceStrongDirichlet=ct.ns_forceStrongDirichlet,
                                   turbulenceClosureModel=ct.ns_closure,
                                   NONCONSERVATIVE_FORM=1.0,
                                   MOMENTUM_SGE=mom_sge,
                                   PRESSURE_SGE=pre_sge,
                                   VELOCITY_SGE=vel_sge,
                                   PRESSURE_PROJECTION_STABILIZATION=pre_proj,
                                   movingDomain=ct.movingDomain)
コード例 #16
0
coefficients = RANS2P.Coefficients(
    epsFact=epsFact_viscosity,
    sigma=sigma_01,
    rho_0=rho_0,
    nu_0=nu_0,
    rho_1=rho_1,
    nu_1=nu_1,
    g=g,
    nd=nd,
    LS_model=1,
    epsFact_density=epsFact_density,
    stokes=useStokes,
    sd=True,
    #turbulenceClosureFlag=turbulenceClosureFlag,
    #smagorinskyConstant_0=smagorinskyConstant_0,
    #smagorinskyConstant_1=smagorinskyConstant_1,
    setParamsFunc=spongeLayerFunc,
    meanGrainSize=spongeGrainSize,
    porosityTypes=porosityTypes,
    meanGrainSizeTypes=meanGrainSizeTypes,
    killNonlinearDrag=killNonlinearDragInSpongeLayer,
    waveFlag=waveFlag,
    waveHeight=0.0,  #waveHeight,
    waveCelerity=waveCelerity,
    waveFrequency=waveFrequency,
    waveNumber=waveNumber,
    waterDepth=waterLevelBase,
    Omega_s=0.0,  #Omega_s,
    epsFact_source=epsFact_source)
コード例 #17
0
nLayersOfOverlapForParallel = mesh.nLayersOfOverlapForParallel
restrictFineSolutionToAllMeshes = mesh.restrictFineSolutionToAllMeshes
triangleOptions = mesh.triangleOptions

elementQuadrature = ct.elementQuadrature
elementBoundaryQuadrature = ct.elementBoundaryQuadrature

femSpaces = {0: ct.basis, 1: ct.basis, 2: ct.basis}
if nd == 3:
    femSpaces[3] = ct.basis

massLumping = False

numericalFluxType = RANS2P.NumericalFlux
subgridError = RANS2P.SubgridError(coefficients=physics.coefficients,
                                   nd=nd,
                                   lag=ct.ns_lag_subgridError,
                                   hFactor=ct.hFactor)
shockCapturing = RANS2P.ShockCapturing(
    coefficients=physics.coefficients,
    nd=nd,
    shockCapturingFactor=ct.ns_shockCapturingFactor,
    lag=ct.ns_lag_shockCapturing)

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

nonlinearSmoother = None
if nd == 2:
    linearSmoother = LinearSolvers.SimpleNavierStokes2D
elif nd == 3:
コード例 #18
0
bcsTimeDependent = True
LevelModelType = RANS2P.LevelModel
LS_model = None
name = 'twp_mprans_cavity'

coefficients = RANS2P.Coefficients(
    epsFact=epsFact_viscosity,
    rho_0=rho_0,
    nu_0=nu_0,
    rho_1=rho_1,
    nu_1=nu_1,
    g=g,
    nd=nd,
    LS_model=None,
    epsFact_density=epsFact_density,
    stokes=False,  #useStokes,
    useVF=useVF,
    useRBLES=0.0,
    useMetrics=1.0,
    forceStrongDirichlet=ns_forceStrongDirichlet,
    NONCONSERVATIVE_FORM=1.0,
    MOMENTUM_SGE=0.0,
    PRESSURE_PROJECTION_STABILIZATION=1.0,
    nullSpace='NavierStokesConstantPressure')


class uTrue(object):
    def __init__(self):
        pass
コード例 #19
0
        Closure_1_model = 3
else:
    Closure_0_model = None
    Closure_1_model = None

coefficients = RANS2P.Coefficients(
    epsFact=epsFact_viscosity,
    sigma=0.0,
    rho_0=rho_0,
    nu_0=nu_0,
    rho_1=rho_1,
    nu_1=nu_1,
    g=g,
    nd=nd,
    VF_model=1,
    LS_model=LS_model,
    Closure_0_model=Closure_0_model,
    Closure_1_model=Closure_1_model,
    epsFact_density=epsFact_density,
    stokes=False,
    useVF=useVF,
    useRBLES=useRBLES,
    useMetrics=useMetrics,
    eb_adjoint_sigma=1.0,
    forceStrongDirichlet=ns_forceStrongDirichlet,
    turbulenceClosureModel=ns_closure)


def getDBC_p(x, flag):
    if flag == boundaryTags['top']:  # or x[1] >= L[1] - 1.0e-12:
        return lambda x, t: 0.0
コード例 #20
0
from proteus.default_p import *
from wavetank import *
from proteus.mprans import RANS2P

LevelModelType = RANS2P.LevelModel

if spongeLayer or levee or slopingSpongeLayer:
    coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                       sigma=0.0,
                                       rho_0=rho_0,
                                       nu_0=nu_0,
                                       rho_1=rho_1,
                                       nu_1=nu_1,
                                       g=g,
                                       nd=nd,
                                       LS_model=1,
                                       epsFact_density=epsFact_density,
                                       stokes=False,
                                       useRBLES=useRBLES,
                                       useMetrics=useMetrics,
                                       porosityTypes=porosityTypes,
                                       dragAlphaTypes=dragAlphaTypes,
                                       dragBetaTypes=dragBetaTypes,
                                       epsFact_solid=epsFact_solid)
else:
    coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                       sigma=0.0,
                                       rho_0=rho_0,
                                       nu_0=nu_0,
                                       rho_1=rho_1,
                                       nu_1=nu_1,
コード例 #21
0
    return x[1] - y_val


phase_func = lambda x: signedDistance(x)

coefficients = RANS2P.Coefficients(
    epsFact=epsFact_viscosity,
    rho_0=rho_0,
    nu_0=nu_0,
    rho_1=rho_1,
    nu_1=nu_1,
    g=g,
    nd=nd,
    LS_model=None,
    epsFact_density=epsFact_density,
    stokes=False,  #useStokes,
    useVF=useVF,
    useRBLES=0.0,
    useMetrics=1.0,
    forceStrongDirichlet=ns_forceStrongDirichlet,
    NONCONSERVATIVE_FORM=1.0,
    MOMENTUM_SGE=0.0,
    PRESSURE_SGE=0.0,
    VELOCITY_SGE=0.0,
    PRESSURE_PROJECTION_STABILIZATION=1.0,
    phaseFunction=phase_func)


class uTrue(object):
    def __init__(self):
        pass
コード例 #22
0
"""
from proteus import *
from proteus.default_p import *
import sys
from cylinder2d import *
from proteus.mprans import RANS2P

bcsTimeDependent = True
LevelModelType = RANS2P.LevelModel
coefficients = RANS2P.Coefficients(epsFact=epsFact_viscosity,
                                   rho_0=rho,
                                   nu_0=nu,
                                   rho_1=rho,
                                   nu_1=nu,
                                   g=g,
                                   nd=nd,
                                   LS_model=None,
                                   epsFact_density=epsFact_density,
                                   stokes=False,#useStokes,
                                   useRBLES=0.0,
                                   useMetrics=0.0,
                                   forceStrongDirichlet=True)


from math import cos,pi
def velRamp(t):
    return 0.41**-2*sin(pi*t/8.0)
    # if t < 2.0:
    #     return 0.5*(1.0-cos(0.5*pi*t))
    # else:
    #     return 1.0