int peano::applications::navierstokes::prototype1::runners::PrototypeRunnerForRegularGrid::runAsMaster( peano::applications::navierstokes::prototype1::repositories::PrototypeRepositoryForRegularGrid& repository, peano::geometry::Geometry& geometry, const peano::applications::navierstokes::prototype1::configurations::PrototypeConfigurationForRegularGrid& configuration) { UserInterface userInterface; userInterface.writeHeader(); //fill up state repository.getState().setLGSMaxIterations( configuration.getMaximumLGSIterations()); repository.getState().setPlotterPlotDebugInfo(true); repository.getState().setScenarioRe(1.0); repository.getState().setScenarioEta(1.0); repository.getState().setScenarioRho(1.0); repository.getState().setScenarioCharacteristicLength(1.0); repository.getState().setOdeTimestepnumber(0); // repository.getState().setElementType(DivergenceFree); repository.getState().setElementType(Dlinear); //Instanz. FluidSimulation const bool useDivergenceCorrection = false; const double rTol = 1e-7; FluidSimulation fluidSim(useDivergenceCorrection, rTol, configuration.plotVTKFiles(), repository); //Zeitschleife (spaeter: ode instanz) int numberOfTimeSteps = configuration.getNumberOfTimesteps(); double tau = 0.00001; double time = 0.0; const bool hasVariableTimeStepSize = false; //in state??? const double elapsedCPUTimePerStep = tarch::la::PI; const bool shallOutputBePlotted = true; //in state??? // const std::string outputPath = "./"; // geht nicht in state wegen string nicht in dastgen! const double dummyValue = -1.0; fluidSim.implementSetInitialValue(hasVariableTimeStepSize, time, dummyValue, dummyValue); for (int i = 1; i <= numberOfTimeSteps; i++) { repository.getState().setOdeTimestepnumber(i); repository.getState().setOdeTime(time); repository.getState().setOdeTau(tau); fluidSim.implementBeginTimeStep(); fluidSim.implementDerivativeAndUpdate(); time += tau; std::ostringstream msg; msg << "./testVtk." << i << ".vtk"; std::string timeStepNumberWithLeadingZeros = msg.str(); fluidSim.implementEndTimeStep(hasVariableTimeStepSize, elapsedCPUTimePerStep, shallOutputBePlotted, timeStepNumberWithLeadingZeros); } userInterface.writeDatatypeStatistics< RegularGridFluidVertexEnhancedDivFreeEulerExplicit, RegularGridFluidCellEnhancedDivFreeEulerExplicit, RegularGridFluidStateEnhancedDivFreeEulerExplicit> (); repository.logIterationStatistics(); repository.terminate(); return 0; }
int main(int argc, char **argv){ testCGStress(16); SDL sdl(SDL_INIT_EVERYTHING); Window win("Fluid!", 640, 480); //16 is the dimensions of the textures we're loading SimpleFluid fluidSim(16, win); fluidSim.initSim(); fluidSim.runSim(); return 0; }