From acdba1d0ba0de53df326956352ff09bea2b80c6a Mon Sep 17 00:00:00 2001 From: Adrian Kummerlaender Date: Sun, 9 Sep 2018 12:08:26 +0200 Subject: Split into compilation units --- src/fluid_buffer.h | 88 +++++++++--------------------------------------------- 1 file changed, 14 insertions(+), 74 deletions(-) (limited to 'src/fluid_buffer.h') diff --git a/src/fluid_buffer.h b/src/fluid_buffer.h index a6c41ba..1d802c0 100644 --- a/src/fluid_buffer.h +++ b/src/fluid_buffer.h @@ -1,6 +1,5 @@ #pragma once -#include #include #include "vector.h" @@ -9,83 +8,24 @@ using Velocity = Vector; using Density = double; class FluidBuffer { - private: - const std::size_t dim_x_; - const std::size_t dim_y_; +private: + const std::size_t dim_x_; + const std::size_t dim_y_; - std::unique_ptr density_; - std::unique_ptr velocity_; + std::unique_ptr density_; + std::unique_ptr velocity_; - public: - FluidBuffer(std::size_t dimX, std::size_t dimY): - dim_x_(dimX), - dim_y_(dimY), - density_(new Density[dimX*dimY]), - velocity_(new Velocity[dimX*dimY]) { } +public: + FluidBuffer(std::size_t dimX, std::size_t dimY); - std::size_t dimX() const { - return dim_x_; - } + std::size_t dimX() const; + std::size_t dimY() const; - std::size_t dimY() const { - return dim_y_; - } + Density& density(std::size_t x, std::size_t y); + Density& density(Vector pos); - Density& density(std::size_t x, std::size_t y) { - return density_[y*dim_x_ + x]; - } + Velocity& velocity(std::size_t x, std::size_t y); + Velocity& velocity(Vector pos); - Density& curr(Vector pos) { - return density(pos[0], pos[1]); - } - - Velocity& velocity(std::size_t x, std::size_t y) { - return velocity_[y*dim_x_ + x]; - } - - Velocity& velocity(Vector pos) { - return velocity(pos[0], pos[1]); - } - - void writeAsVTK(int time) { - std::ofstream fout; - fout.open(("result/data_t" + std::to_string(time) + ".vtk").c_str()); - - fout << "# vtk DataFile Version 3.0\n"; - fout << "lbm_output\n"; - fout << "ASCII\n"; - fout << "DATASET RECTILINEAR_GRID\n"; - fout << "DIMENSIONS " << dimX() << " " << dimY() << " 1" << "\n"; - - fout << "X_COORDINATES " << dimX() << " float\n"; - for( std::size_t x = 0; x < dimX(); ++x ) { - fout << x << " "; - } - - fout << "\nY_COORDINATES " << dimY() << " float\n"; - for( std::size_t y = 0; y < dimY(); ++y ) { - fout << y << " "; - } - - fout << "\nZ_COORDINATES " << 1 << " float\n"; - fout << 0 << "\n"; - fout << "POINT_DATA " << dimX() * dimY() << "\n"; - - fout << "VECTORS velocity float\n"; - for ( std::size_t y = 0; y < dimY(); ++y ) { - for ( std::size_t x = 0; x < dimX(); ++x ) { - fout << velocity(x,y)[0] << " " << velocity(x,y)[1] << " 0\n"; - } - } - - fout << "SCALARS density float 1\n"; - fout << "LOOKUP_TABLE default\n"; - for ( std::size_t y = 0; y < dimY(); ++y ) { - for ( std::size_t x = 0; x < dimX(); ++x ) { - fout << density(x,y) << "\n"; - } - } - - fout.close(); - } + void writeAsVTK(int time); }; -- cgit v1.2.3