Exemple #1
0
        public ScalarExtVelAdvection(LevelSetTracker LSTrk, SinglePhaseField LevelSet, VectorField <SinglePhaseField> LevelSetGradient, VectorField <SinglePhaseField> Velocity, EllipticExtVelAlgoControl Control, bool nearfield, out SinglePhaseField Extension)
        {
            int    D           = LSTrk.GridDat.SpatialDimension;
            double PenaltyBase = Control.PenaltyMultiplierInterface * ((double)((LevelSet.Basis.Degree + 1) * (LevelSet.Basis.Degree + D))) / ((double)D);

            ILevelSetForm InterfaceFlux = new ScalarVelocityInterfaceForm(PenaltyBase, LSTrk);

            this.nearfield = nearfield;

            List <DGField> Paramlist = new List <DGField> {
            };

            Paramlist.AddRange(Velocity);

            Extension = new SinglePhaseField(Velocity[0].Basis, "ExtensionVelocity");

            VelocityExtender = new Extender(Extension, LSTrk, InterfaceFlux, Paramlist, LevelSetGradient, Control);
            Advection        = new ScalarVelocityAdvection(LSTrk, LevelSet, Extension, null, nearfield);
        }
Exemple #2
0
        public ScalarExtUpdate(LevelSetTracker LSTrk, SinglePhaseField LevelSet, VectorField <SinglePhaseField> LevelSetGradient, VectorField <SinglePhaseField> Velocity, EllipticExtVelAlgoControl Control, out SinglePhaseField Extension, bool nearfield)
        {
            this.LevelSet  = LevelSet;
            this.nearfield = nearfield;

            int    D           = LSTrk.GridDat.SpatialDimension;
            double PenaltyBase = Control.PenaltyMultiplierInterface * ((double)((LevelSet.Basis.Degree + 1) * (LevelSet.Basis.Degree + D))) / ((double)D);

            ILevelSetComponent InterfaceFlux = new ScalarVelocityInterfaceForm(PenaltyBase, LSTrk);

            List <DGField> Paramlist = new List <DGField> {
            };

            Paramlist.AddRange(Velocity);

            Extension        = new SinglePhaseField(LevelSet.Basis, "ExtensionVelocity");
            this.Extension   = Extension;
            VelocityExtender = new Extender(Extension, LSTrk, InterfaceFlux, Paramlist, LevelSetGradient, Control);
            VelocityExtender.ConstructExtension(nearfield: nearfield);
        }