示例#1
0
        private static void setMedium(SimulationParameters parameters, MeshInfo meshInfo)
        {
            var factory = new MediumSolverFactory(parameters.TimeStep);

            //parameters.Medium = setSphere(parameters, silver, drudeLorentzParam, vacuum);
            parameters.Medium = setObject(parameters, meshInfo.Voxels, factory);
        }
示例#2
0
        private static IMediumSolver[,,] setObject(
            SimulationParameters parameters,
            List <Voxel> voxels,
            MediumSolverFactory fact)
        {
            var medium = parameters.Indices.CreateArray <IMediumSolver>(
                (i, j, k) => fact.GetMediumSolver(string.Empty));

            var offset = parameters.PmlLength;

            foreach (var voxel in voxels)
            {
                medium[voxel.I + offset, voxel.J + offset, voxel.K + offset] = fact.GetMediumSolver(voxel.Material, true);
            }
            return(medium);
        }