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); }
public void Advect(double dt) { VelocityExtender.ConstructExtension(nearfield: nearfield); Advection.Advect(dt); }
public void Advect(double dt) { VelocityExtender.ConstructExtension(nearfield: nearfield); LevelSet.Acc(-dt, Extension); }