Пример #1
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);
        }
Пример #2
0
 public void Advect(double dt)
 {
     VelocityExtender.ConstructExtension(nearfield: nearfield);
     Advection.Advect(dt);
 }
Пример #3
0
 public void Advect(double dt)
 {
     VelocityExtender.ConstructExtension(nearfield: nearfield);
     LevelSet.Acc(-dt, Extension);
 }