private CylinderGeometry GetGeometry()
        {
            var radius     = RadiusUpDown.Value ?? 5;
            var length     = LengthUpDown.Value ?? 100;
            var resolution = ResolutionUpDown.Value ?? 5;

            var span     = TimeUpDown.Value ?? 100;
            var interval = TimeIntervalUpDown.Value ?? 10;

            var flux  = (FluxUpDown.Value ?? 1) * Math.Pow(10, 15);
            var count = TrialCountUpDown.Value ?? 100000;

            var cylinder = new CylinderReflector(0, Vector.Zero, Vector.Forward, length, radius);
            var bottom   = new Shield(1, Vector.Forward * length, Vector.Forward, radius);

            var geometry = new CylinderGeometry(cylinder, bottom, null, span, interval, flux, resolution, (int)count, 100, Atom.ReflectionPattern.Specularly);

            return(geometry);
        }
示例#2
0
 public void Set(CylinderReflector cylinderReflector)
 {
     Set(cylinderReflector.Position, cylinderReflector.Direction, cylinderReflector.Radius, cylinderReflector.Length, cylinderReflector.ReflectionCoefficient);
 }
示例#3
0
 public ProbeRotationGeometry(CylinderReflector nozzle, Plate plate, Shield probe, Hole slit1, Hole slit2, Atom.ReflectionPattern pattern) : base(100, 1, pattern, new Structure[] { nozzle, plate, probe, slit1, slit2 })
 {
     NozzleRotation = new Rotation(Vector.Forward, nozzle.Direction);
 }
示例#4
0
 public HoleGeometry(int limit, double reflectionCoefficient, Atom.ReflectionPattern pattern, CylinderReflector nozzle, CylinderReflector subNozzle, Hole hole, Shield detector) : base(limit, reflectionCoefficient, pattern, new Structure[] { nozzle, subNozzle, hole, detector })
 {
 }