public LatticeBhatnagarGrossKrookSimulator(ModelParameters modelParameters, NodeSpace nodeSpace,
                                                   IEnumerable <Shape> shapes, int iterations, int outputDelay)
        {
            ModelParameters = modelParameters;
            NodeSpace       = nodeSpace;
            MaxIterations   = iterations;
            OutputDelay     = outputDelay;
            Shapes          = shapes ?? Enumerable.Empty <Shape>();

            _l2Error = 1.0;

            Initialise();
        }
        public static void Main(string[] args)
        {
            // Define domain
            var          nodeSpace       = NodeSpaceFactory.Create(0.0, 1.0, 0.0, 1.0, 300);
            var          modelParameters = new ModelParameters(new [] { 0.1, 0 }, 1.0, 3200.0, 0.01, 0.00001);
            List <Shape> shapes          = null;

            var simulation = new LatticeBhatnagarGrossKrookSimulator(modelParameters, nodeSpace, shapes, 300, 5);

            while (simulation.CurrentIteration < simulation.MaxIterations)
            {
                simulation.Iterate();
            }

            bool stop = true;
        }