void PNP::PotentialResid<EvalT, Traits>::
evaluateFields(typename Traits::EvalData workset)
{
  typedef Intrepid2::FunctionSpaceTools FST;

  // Scale gradient into a flux, reusing same memory
  FST::scalarMultiplyDataData<ScalarT> (PotentialGrad, Permittivity, PotentialGrad);
  FST::integrate<ScalarT>(PotentialResidual, PotentialGrad, wGradBF, Intrepid2::COMP_CPP, false); // "false" overwrites

    
    for (std::size_t cell=0; cell < workset.numCells; ++cell) {
      for (std::size_t node=0; node < numNodes; ++node) {          
          for (std::size_t qp=0; qp < numQPs; ++qp) {           
            for (std::size_t j=0; j < numSpecies; ++j) { 
              PotentialResidual(cell,node) -= 
                q[j]*Concentration(cell,qp,j)*wBF(cell,node,qp);
//cout << "XXX " << cell << " " << node << " " << qp << " " << j << " " << q[j] << "  " << Concentration(cell,qp,j) << endl;
            }  
          }
        }
    }

}
示例#2
0
Concentration funSignalling(Concentration y) {
    dy = Concentration();

    double Gs_abg_CAV = sc.f_Gs_CAV * sc.Gs_tot * (V.tot_per_cav) - y.Gs_aGTP_CAV - y.Gs_aGDP_CAV;
    double Gi_abg_CAV = sc.f_Gi_CAV * sc.Gi_tot * (V.tot_per_cav) - y.Gi_aGTP_CAV - y.Gi_aGDP_CAV;

    double R_b1_comp = sc.f_Rb1_CAV * sc.R_b1_tot * (V.tot_per_cav);
    double R_b2_comp = sc.f_Rb2_CAV * sc.R_b2_tot * V.tot_per_cav;

    LigRecepGprotWithBeta2 lGCPRwithBeta2_CAV = Mod_LigRecepGprotWithBeta2(R_b1_comp, y.R_pkap_tot_CAV,
                                                                           y.R_grkp_tot_CAV, R_b2_comp,
                                                                           y.Rb2_pkap_tot_CAV,
                                                                           y.Rb2_grkp_tot_CAV, Gs_abg_CAV, Gi_abg_CAV,
                                                                           y.C_CAV, sc.GRK_CAV);
    dy.R_pkap_tot_CAV = lGCPRwithBeta2_CAV.dRb1_pkap_tot;

    dy.R_grkp_tot_CAV = lGCPRwithBeta2_CAV.dRb1_grkp_tot;

    dy.Rb2_pkap_tot_CAV = lGCPRwithBeta2_CAV.dRb2_pkap_tot;

    dy.Rb2_grkp_tot_CAV = lGCPRwithBeta2_CAV.dRb2_grkp_tot;

    double Gs_abg_ECAV = (sc.f_Gs_ECAV * sc.Gs_tot * (V.tot_per_ecav)) - y.Gs_aGTP_ECAV - y.Gs_aGDP_ECAV;
    double Gi_abg_ECAV = ((1 - sc.f_Gi_CAV) * sc.Gi_tot * (V.tot_per_ecav)) - y.Gi_aGTP_ECAV - y.Gi_aGDP_ECAV;

    R_b1_comp = sc.f_Rb1_ECAV * sc.R_b1_tot * (V.tot_per_ecav);
    R_b2_comp = sc.f_Rb2_ECAV * sc.R_b2_tot * (V.tot_per_ecav);

    LigRecepGprotWithBeta2 lGCPRwithBeta2_ECAV = Mod_LigRecepGprotWithBeta2(R_b1_comp, y.R_pkap_tot_ECAV,
                                                                            y.R_grkp_tot_ECAV, R_b2_comp,
                                                                            y.Rb2_pkap_tot_ECAV, y.Rb2_grkp_tot_ECAV,
                                                                            Gs_abg_ECAV, Gi_abg_ECAV, y.C_ECAV,
                                                                            sc.GRK_ECAV);
    dy.R_pkap_tot_ECAV = lGCPRwithBeta2_ECAV.dRb1_pkap_tot;
    dy.R_grkp_tot_ECAV = lGCPRwithBeta2_ECAV.dRb1_grkp_tot;
    dy.Rb2_pkap_tot_ECAV = lGCPRwithBeta2_ECAV.dRb2_pkap_tot;
    dy.Rb2_grkp_tot_ECAV = lGCPRwithBeta2_ECAV.dRb2_grkp_tot;

    double Gs_f_CYT = ((1 - sc.f_Gs_CAV - sc.f_Gs_ECAV) * sc.Gs_tot * (V.tot_per_cyt)) - y.Gs_a_GTP_CYT - y.Gs_aGDP_CYT;
    double R_comp = (1 - sc.f_Rb1_CAV - sc.f_Rb1_ECAV) * sc.R_b1_tot * (V.tot_per_cyt);
    LigRecepGprot ligRecepGprot = Mod_LigRecepGprot(R_comp, y.R_pkap_tot_CYT, y.R_grkp_tot_CYT, L, Gs_f_CYT, y.C_CYT,
                                                    sc.GRK_CYT);

    dy.R_pkap_tot_CYT = ligRecepGprot.dR_pkap_tot;
    dy.R_grkp_tot_CYT = ligRecepGprot.dR_grkp_tot;

    Mod_GprotAct(y, lGCPRwithBeta2_CAV.Rb1Gs + sc.k_GsAct_b2 * lGCPRwithBeta2_CAV.Rb2Gs,
             lGCPRwithBeta2_CAV.LRb1Gs + sc.k_GsAct_b2 * lGCPRwithBeta2_CAV.LRb2Gs,
             lGCPRwithBeta2_CAV.Rb2Gi, lGCPRwithBeta2_CAV.LRb2Gi,

             lGCPRwithBeta2_ECAV.Rb1Gs + sc.k_GsAct_b2 * lGCPRwithBeta2_ECAV.Rb2Gs, //RG_ECAV
             lGCPRwithBeta2_ECAV.LRb1Gs + sc.k_GsAct_b2 * lGCPRwithBeta2_ECAV.LRb2Gs, //LRG_ECAV

             lGCPRwithBeta2_ECAV.Rb2Gi, lGCPRwithBeta2_ECAV.LRb2Gi, ligRecepGprot.RG, ligRecepGprot.LRG);

    CAMP_AC cAMP_AC = Mod_AC(y);
    PKA pka = Mod_PKA(y);
    Mod_cAMP(y, pka, cAMP_AC);
    Mod_PDE_Phosphorylation(y);
    double pp1 = Mod_PP1_Inhibition(y);
    Mod_Channel_Phosphorylation(y, pp1);

    return dy;
}