#include "richards.hpp" namespace Kernel{ Richards::Richards(){ sup_A=nullptr; diag_A=nullptr; sub_A=nullptr; sup_B=nullptr; diag_B=nullptr; sub_B=nullptr; sup_C=nullptr; diag_C=nullptr; sub_C=nullptr; F=nullptr; G=nullptr; S=nullptr; H=nullptr; R=nullptr; I=nullptr; BB=nullptr; } void Richards::init(size_t ix_,size_t nZ_,double dZ_,double* pumps_){ pumps=pumps_; ix=ix_; nZ=nZ_; dZ=dZ_; temp_P[0]=new double[nZ]; temp_P[1]=new double[nZ]; sub_A=new double[nZ-2]; sub_B=new double[nZ-2]; sub_C=new double[nZ-2]; diag_A=new double[nZ-1]; diag_B=new double[nZ-1]; diag_C=new double[nZ-1]; sup_A=new double[nZ-2]; sup_B=new double[nZ-2]; sup_C=new double[nZ-2]; F=new double[nZ-1]; G=new double[nZ-1]; S=new double[nZ-1]; H=new double[nZ-1]; R=new double[nZ-1]; I=new double[nZ-1]; BB=new double[nZ-1]; } void Richards::run(){ #ifdef MYDEBUG if(Debug::ix==ix) cout<<" [Richards::run] start"<=3); #endif //Compute A diag_A[0]=(Physics::phi*dZ*Physics::ds(in_P[0]))/(2*dt); for(size_t i=1;i