00001 00011 #ifndef BoundaryConditions_H 00012 #define BoundaryConditions_H 00013 00014 #include <string> 00015 #include "../Matrix/Matrix.h" 00016 #include "../Parameters/Parameters.h" 00017 #include "../VariousFunctions/variousFunctions.h" 00018 00019 using namespace std; 00020 00021 class BoundaryCondition : public Matrix3D<double> { 00022 private: 00023 bool initialized; 00024 public: 00025 // Parameters 00026 ParamStructure::BoundaryCondition BC_parameters; 00027 00029 string calculationType; 00031 string initialType; 00033 double value; 00035 string filename; 00036 00037 // constructors 00039 BoundaryCondition() : Matrix3D<double>() {} 00040 00042 BoundaryCondition(int time_size, int size_two, int size_three, ParamStructure::BoundaryCondition parameters); 00043 00044 void Initialize (ParamStructure::BoundaryCondition parameters); 00045 00046 // operators 00047 BoundaryCondition& operator= (double val); 00048 // BoundaryCondition& operator= (Matrix2D<double> &M); 00049 BoundaryCondition& operator= (Matrix3D<double> M); 00050 BoundaryCondition operator* (double val); 00051 00052 // functions 00053 void MakeBoundaryCondition(Matrix2D<double> psd2DSlice, Matrix2D<double> gridElement1, Matrix2D<double> gridElement2); 00054 void LoadBoundaryCondition(Matrix2D<double> gridElement1, Matrix2D<double> gridElement2); 00055 00056 void Update(int it, Matrix2D<double> PSD_2D_Slice); 00057 00058 }; 00059 00060 #endif