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); }
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); }