181 int nvariables = inarray.size();
192 for (
int i = 0; i < nvariables; ++i)
197 Vmath::Vcopy(nq, &inarray[i][0], 1, &outarray[i][0], 1);
208 m_fields[i]->PhysDeriv(inarray[1], ggrad0);
210 m_fields[i]->PhysDeriv(0, ggrad0, ggrad0);
212 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
213 m_session->DefinesFunction(
"ExtracellularConductivity"))
229 m_fields[i]->UpdateCoeffs(), factors);
234 outarray[i] =
m_fields[i]->GetPhys();
240 m_fields[i]->PhysDeriv(inarray[1], ggrad0, ggrad1);
242 m_fields[i]->PhysDeriv(0, ggrad0, ggrad0);
243 m_fields[i]->PhysDeriv(1, ggrad1, ggrad1);
245 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
246 m_session->DefinesFunction(
"ExtracellularConductivity"))
264 m_fields[i]->UpdateCoeffs(), factors,
270 outarray[i] =
m_fields[i]->GetPhys();
276 m_fields[i]->PhysDeriv(inarray[1], ggrad0, ggrad1, ggrad2);
278 m_fields[i]->PhysDeriv(0, ggrad0, ggrad0);
279 m_fields[i]->PhysDeriv(1, ggrad1, ggrad1);
280 m_fields[i]->PhysDeriv(2, ggrad2, ggrad2);
282 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
283 m_session->DefinesFunction(
"ExtracellularConductivity"))
304 m_fields[i]->UpdateCoeffs(), factors,
310 outarray[i] =
m_fields[i]->GetPhys();
322 m_fields[i]->PhysDeriv(0, grad0, grad0);
324 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
325 m_session->DefinesFunction(
"ExtracellularConductivity"))
333 (-1.0 *
m_session->GetParameter(
"sigmaix")) /
340 m_fields[i]->UpdateCoeffs(), factors);
345 outarray[i] =
m_fields[i]->GetPhys();
353 m_fields[i]->PhysDeriv(0, grad0, grad0);
354 m_fields[i]->PhysDeriv(1, grad1, grad1);
356 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
357 m_session->DefinesFunction(
"ExtracellularConductivity"))
370 m_fields[i]->UpdateCoeffs(), factors,
376 outarray[i] =
m_fields[i]->GetPhys();
385 m_fields[i]->PhysDeriv(0, grad0, grad0);
386 m_fields[i]->PhysDeriv(1, grad1, grad1);
387 m_fields[i]->PhysDeriv(2, grad2, grad2);
389 if (
m_session->DefinesFunction(
"IntracellularConductivity") &&
390 m_session->DefinesFunction(
"ExtracellularConductivity"))
406 m_fields[i]->UpdateCoeffs(), factors,
412 outarray[i] =
m_fields[i]->GetPhys();
static EquationSystemSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
Creates an instance of this class.
void v_SetInitialConditions(NekDouble initialtime, bool dumpInitialConditions, const int domain) override
Sets a custom initial condition.
Array< OneD, Array< OneD, NekDouble > > tmp3
static std::string className
Name of class.
Array< OneD, Array< OneD, NekDouble > > tmp2
void v_InitObject(bool DeclareField=true) override
Initialisation object for EquationSystem.
Array< OneD, Array< OneD, NekDouble > > tmp1
void DoOdeRhs(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble time)
Computes the reaction terms and .
CellModelSharedPtr m_cell
Cell model.
void v_GenerateSummary(SummaryList &s) override
Prints a summary of the model parameters.
Bidomain(const LibUtilities::SessionReaderSharedPtr &pSession, const SpatialDomains::MeshGraphSharedPtr &pGraph)
Constructor.
void DoImplicitSolve(const Array< OneD, const Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, NekDouble time, NekDouble lambda)
Solve for the diffusion term.