void ConstantDamping::linearOPs_Init(double t0, doubVec *linOpFluct, doubVec *linOpMF){ for (int i=0; i<Dimxy(); ++i) { linOpFluct[i].setConstant(dampFac/2); } for (int i=0; i<num_MFs(); ++i) { linOpMF[i].setConstant(dampFac/2); } }
void ConstantDamping::linearOPs_Init(double t0, doubVec **linOpFluct, doubVec *linOpMF){ // Fluctuations for (int i=0; i<Dimxy(); ++i) { for (int j=0; j<num_Lin(); ++j) { linOpFluct[i][j].setZero(); } } // Mean fields for (int i=0; i<num_MFs(); ++i) { linOpMF[i].setZero(); } }
void ConstantDamping::rhs(const double t, const double dt_lin, const solution * SolIn, solution * SolOut,doubVec *linOpFluct) { // Exponential growth for (int i=0; i<Dimxy(); ++i) { *( SolOut->pLin(i) ) = *( SolIn->pLin(i) )*dampFac/2; } for (int i=0; i<num_MFs(); ++i) { *( SolOut->pMF(i) ) = *( SolIn->pMF(i) )*dampFac/2; } // linear part is zero for (int i=0; i<Dimxy(); ++i) { linOpFluct[i].setConstant(dampFac/2); } }
// Modified const of SolIn so that it can be divergence cleaned! void ConstantDamping::rhs(const double t, const double dt_lin, solution * SolIn, solution * SolOut,doubVec **linOpFluct) { for (int i=0; i<Dimxy(); ++i) { // Full Loop containing all the main work equation /////////////////////////////////////// ///// MAIN EQUATIONS assign_laplacians_(i, t, 1); for (int Vn=0; Vn<num_Lin(); ++Vn) { *( SolOut->pLin(i,Vn) ) = -(*( SolIn->pLin(i,Vn) ))*dampFac; } //////////////////////////////////////// ////// LINEAR PART // Need to re-evaluate laplacian, since different time. kxtmp_=kxtmp_ + q_*dt_lin*kytmp_; linOpFluct[i][0].setZero(); linOpFluct[i][1].setZero(); linOpFluct[i][2].setZero(); linOpFluct[i][3].setZero(); // linOpFluct[i][0] = nu_*((-kxtmp_*kxtmp_-kytmp_*kytmp_)+ K->kz2); // linOpFluct[i][1] = linOpFluct[i][0]; // linOpFluct[i][2] = (eta_/nu_)*linOpFluct[i][0];// Saves some calculation // linOpFluct[i][3] = linOpFluct[i][2]; //////////////////////////////////////// } for (int i=0; i<num_MFs(); ++i) { (*( SolOut->pMF(i) )).setZero();; } }