AFI::AFI(const bool prompt) : SteadyState() { if (prompt) cout << "Enter flip-angle (degrees): " << flush; double inFlip; QI::Read(cin, inFlip); m_flip = ArrayXd::Ones(1) * inFlip * M_PI / 180.; if (prompt) cout << "Enter TR1 & TR2 (seconds): " << flush; ArrayXd temp; QI::ReadArray(cin, temp); if (temp.rows() != 2) QI_EXCEPTION("Must enter 2 TR values."); m_TR1 = temp[0]; m_TR2 = temp[1]; }
SSFPSimple::SSFPSimple(const ArrayXd &flip, const double TR, const ArrayXd &phi) : SteadyState() { m_TR = TR; m_flip = (flip * M_PI / 180.).replicate(phi.rows(), 1); m_nphi = phi.size(); m_phi = ArrayXd::Zero(m_flip.size()); int start = 0; for (int i = 0; i < phi.size(); i++) { m_phi.segment(start, flip.size()).setConstant(phi[i] * M_PI / 180.); start += flip.size(); } }