tasmet/src/duct/grid.h

41 lines
749 B
C++

#pragma once
#ifndef _GRID_H_
#define _GRID_H_
#include "tasmet_enum.h"
#include "tasmet_types.h"
class Grid{
public:
Grid& operator=(const Grid& g)=delete;
virtual vd getx() const=0;
virtual ~Grid(){}
};
class LinearGrid: public Grid{
us ngp;
d L; // Length of the Duct
public:
LinearGrid(us ngp,d L);
LinearGrid(const LinearGrid& g):LinearGrid(g.ngp,g.L){}
vd getx() const {return linspace(0,L,ngp);}
};
// Boundary layer grid.
// L: length of grid
// dxb: boundary layer grid spacing (minimal grid spacing)
// xb: boundary layer tickness
// dxmid: spacing in the middle part
class BlGrid:public Grid{
d L,dxb,dxmid;
public:
BlGrid(d L,d dxb,d dxmid);
vd getx() const;
};
#endif /* _GRID_H_ */