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
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
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)
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()
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,
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)
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,
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 #===============================================================================
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,
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,
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
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)
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(),
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)
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)
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)
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:
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
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
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,
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
""" 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