public static SpaceCharacteristic[] Create(int Length, double eps = 1, double mu = 1, double sgm = 0) { var space = new SpaceCharacteristic[Length]; for (var i = 0; i < space.Length; i++) { space[i] = new SpaceCharacteristic(eps, mu, sgm); } return(space); }
private async Task ProcessFieldsAsync() { var solver = new Solver1D( SpaceCharacteristic.Create(f_SpaceSize), new Solver1D.Boundary( Xmin: BoundaryType.PMC, Xmax: BoundaryType.PMC), f_SpaceStep, new[] { new FieldSource( position: 50, type: FieldSource.FieldTypes.E, orientation: FieldSource.SourceOrientation.Z, f: t => Math.Exp(-(t - 30) * (t - 30) / 100)) }); await Task.Run(() => { while (solver.Time < f_Tmax) { solver.TimeStep(f_dt); } }).ConfigureAwait(false); }