Beispiel #1
0
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);
    }
}
Beispiel #2
0
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();
    }
}
Beispiel #3
0
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);
    }
}
Beispiel #4
0
// 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();;
    }
    

}