/// <summary> /// ctor; parameter documentation see <see cref="swipViscosityBase.swipViscosityBase"/>. /// </summary> public swipViscosity_Term3(double _penalty, MultidimensionalArray PenaltyLengthScales, int iComp, int D, IncompressibleBoundaryCondMap bcmap, ViscosityImplementation implMode, ViscosityOption _ViscosityMode, ViscositySolverMode ViscSolverMode = ViscositySolverMode.FullyCoupled, double constantViscosityValue = double.NaN, double reynolds = double.NaN, MaterialLaw EoS = null) : base(_penalty, PenaltyLengthScales, iComp, D, bcmap, implMode, _ViscosityMode, constantViscosityValue, reynolds, EoS) { this.ViscSolverMode = ViscSolverMode; }
public ViscosityInBulk_GradUTerm(double penalty, double sw, IncompressibleMultiphaseBoundaryCondMap bcMap, int d, int D, double _muA, double _muB, ViscosityImplementation _ViscosityImplementation, double _betaA = 0.0, double _betaB = 0.0) : base(penalty, null, d, D, bcMap, _ViscosityImplementation, NSECommon.ViscosityOption.ConstantViscosity, constantViscosityValue: double.NegativeInfinity) { muA = _muA; muB = _muB; betaA = _betaA; betaB = _betaB; base.m_alpha = sw; this.m_bcMap = bcMap; base.velFunction = null; this.m_penalty = penalty; }
public static void ConsistencyTest( [Values(Terms.T1, Terms.T2, Terms.T3)] Terms t, [Values(ViscosityImplementation.H, ViscosityImplementation.SWIP)] ViscosityImplementation v, [Values(0, 1)] int iSol ) { ipViscosityMain p = null; BoSSS.Solution.Application._Main(new string[0], true, "", delegate() { p = new ipViscosityMain(); p.mode = TestMode.CheckResidual; p.solution = solutions[iSol]; p.PolynomialDegree = 4; p.grid = new MixedBcGrid(); p.viscOption = v; p.whichTerms = t; return(p); }); p.L2ResidualNorm.ForEach(res => Assert.LessOrEqual(res, 1.0e-8, " Residual L2 Norm ")); }
public static void solverTest( [Values(Terms.T1, Terms.T1 | Terms.T2, Terms.T1 | Terms.T2 | Terms.T3)] Terms t, [Values(ViscosityImplementation.H, ViscosityImplementation.SWIP)] ViscosityImplementation v, [Values(0, 1, 2)] int iSol, [Values(2, 3, 4)] int deg ) { ipViscosityMain p = null; BoSSS.Solution.Application._Main(new string[0], true, "", delegate() { p = new ipViscosityMain(); p.mode = TestMode.Solve; p.solution = solutions[iSol]; p.PolynomialDegree = deg; p.grid = new MixedBcGrid(); p.viscOption = v; p.whichTerms = t; return(p); }); p.L2ResidualNorm.ForEach(res => Assert.LessOrEqual(res, 1.0e-8)); p.L2ErrorNorm.ForEach(err => Assert.LessOrEqual(err, 0.5)); }
/// <summary> /// ctor; parameter documentation see <see cref="swipViscosityBase.swipViscosityBase"/>. /// </summary> public swipViscosity_Term1(double _penalty, MultidimensionalArray PenaltyLengthScales, int iComp, int D, IncompressibleBoundaryCondMap bcmap, ViscosityImplementation implMode, ViscosityOption _ViscosityMode, double constantViscosityValue = double.NaN, double reynolds = double.NaN, MaterialLaw EoS = null, Func <double, int, int, MultidimensionalArray, double> ComputePenalty = null) : base(_penalty, PenaltyLengthScales, iComp, D, bcmap, implMode, _ViscosityMode, constantViscosityValue, reynolds, EoS, ComputePenalty) { }
/// <summary> /// ctor. /// </summary> /// <param name="_penalty"></param> /// <param name="iComp"> /// component index /// </param> /// <param name="D"> /// spatial dimension. /// </param> /// <param name="bcmap"></param> /// <param name="implMode"></param> /// <param name="_ViscosityMode"> /// see <see cref="ViscosityOption"/> /// </param> /// <param name="constantViscosityValue"> /// Constant value for viscosity. /// Needs to be given for <see cref="ViscosityOption.ConstantViscosity"/>. /// </param> /// <param name="reynolds"> /// Reynolds number for dimensionless formulation. /// Needs to be given for <see cref="ViscosityOption.ConstantViscosityDimensionless"/> and <see cref="ViscosityOption.VariableViscosityDimensionless"/>. /// </param> /// <param name="EoS"> /// Optional material law for calculating the viscosity /// as a function of the level-set. /// Only available for <see cref="ViscosityOption.VariableViscosity"/> and <see cref="ViscosityOption.VariableViscosityDimensionless"/>. /// </param> protected swipViscosityBase(double _penalty, MultidimensionalArray PenaltyLengthScales, int iComp, int D, IncompressibleBoundaryCondMap bcmap, ViscosityImplementation implMode, ViscosityOption _ViscosityMode, double constantViscosityValue = double.NaN, double reynolds = double.NaN, MaterialLaw EoS = null, Func <double, int, int, MultidimensionalArray, double> ComputePenalty = null) { this.m_penalty = _penalty; this.m_ComputePenalty = ComputePenalty; this.m_iComp = iComp; this.m_D = D; this.cj = PenaltyLengthScales; velFunction = D.ForLoop(d => bcmap.bndFunction[VariableNames.Velocity_d(d)]); EdgeTag2Type = bcmap.EdgeTag2Type; this.m_implMode = implMode; this.m_PhysicsMode = bcmap.PhysMode; this.m_ViscosityMode = _ViscosityMode; switch (_ViscosityMode) { case ViscosityOption.ConstantViscosity: if (double.IsNaN(constantViscosityValue)) { throw new ArgumentException("constantViscosityValue is missing!"); } this.m_constantViscosityValue = constantViscosityValue; break; case ViscosityOption.ConstantViscosityDimensionless: if (double.IsNaN(reynolds)) { throw new ArgumentException("reynolds number is missing!"); } this.m_reynolds = reynolds; break; case ViscosityOption.VariableViscosity: this.m_EoS = EoS; break; case ViscosityOption.VariableViscosityDimensionless: if (double.IsNaN(reynolds)) { throw new ArgumentException("reynolds number is missing!"); } this.m_reynolds = reynolds; this.m_EoS = EoS; break; default: throw new NotImplementedException(); } }
public ViscosityAtLevelSet_Standard(LevelSetTracker lstrk, double _muA, double _muB, double _penalty, int _component, bool _includeTransposeTerm, ViscosityImplementation _ViscosityImplementation) { this.m_LsTrk = lstrk; this.muA = _muA; this.muB = _muB; this.penalty = _penalty; this.component = _component; this.m_D = lstrk.GridDat.SpatialDimension; this.includeTransposeTerm = _includeTransposeTerm; this.m_ViscosityImplementation = _ViscosityImplementation; }
public ViscosityAtLevelSet_FullySymmetric(LevelSetTracker lstrk, double _muA, double _muB, double _penalty, int _component, ViscosityImplementation _ViscosityImplementation) { this.m_LsTrk = lstrk; this.muA = _muA; this.muB = _muB; this.penalty = _penalty; this.component = _component; this.m_D = lstrk.GridDat.SpatialDimension; this.m_ViscosityImplementation = _ViscosityImplementation; }
public ViscosityInBulk_divTerm_Localized(double penalty, double sw, IncompressibleMultiphaseBoundaryCondMap bcMap, int d, int D, double _muA, double _muB, ViscosityImplementation _ViscosityImplementation) : base(penalty, sw, bcMap, d, D, _muA, _muB, _ViscosityImplementation) { }