MCPcopy Create free account
hub / github.com/boutproject/BOUT-dev / CVSetBDF

Function CVSetBDF

externalpackages/PVODE/source/cvode.cpp:1751–1779  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1749*****************************************************************/
1750
1751static void CVSetBDF(CVodeMem cv_mem)
1752{
1753 real alpha0, alpha0_hat, xi_inv, xistar_inv, hsum;
1754 int i,j;
1755
1756 l[0] = l[1] = xi_inv = xistar_inv = ONE;
1757 for (i=2; i <= q; i++) l[i] = ZERO;
1758 alpha0 = alpha0_hat = -ONE;
1759 hsum = h;
1760 if (q > 1) {
1761 for (j=2; j < q; j++) {
1762 hsum += tau[j-1];
1763 xi_inv = h / hsum;
1764 alpha0 -= ONE / j;
1765 for(i=j; i >= 1; i--) l[i] += l[i-1]*xi_inv;
1766 /* The l[i] are coefficients of product(1 to j) (1 + x/xi_i) */
1767 }
1768
1769 /* j = q */
1770 alpha0 -= ONE / q;
1771 xistar_inv = -l[1] - alpha0;
1772 hsum += tau[q-1];
1773 xi_inv = h / hsum;
1774 alpha0_hat = -l[1] - xi_inv;
1775 for (i=q; i >= 1; i--) l[i] += l[i-1]*xistar_inv;
1776 }
1777
1778 CVSetTqBDF(cv_mem, hsum, alpha0, alpha0_hat, xi_inv, xistar_inv);
1779}
1780
1781/****************** CVSetTqBDF ************************************
1782

Callers 1

CVSetFunction · 0.85

Calls 1

CVSetTqBDFFunction · 0.85

Tested by

no test coverage detected