10#include "../Utils_Fill.h"
21 template <
typename _Type,
typename _Xtype>
44 template <
typename _Type>
56 template <
typename _Type>
78 cout <<
"=== BVP: finite-difference solution of Troesch eqn ==\n";
82 Example::Troesch_left_BC <double> BC_left;
92 const double tol = 1.e-4;
99 for (
unsigned i = 0; i < N; ++i )
101 double y = ode.
solution().coord( i );
113 catch (
const std::runtime_error &error )
115 cout <<
" \033[1;31;48m * FAILED THROUGH EXCEPTION BEING RAISED \033[0m\n";
120 const double diff = std::abs( ode.
solution().get_interpolated_vars(0.5)[
f] - 0.55437396E-01 );
125 cout <<
"\033[1;31;48m * FAILED \033[0m\n";
126 cout <<
"Real problem error " << diff <<
"\n";
131 cout <<
"\033[1;32;48m * PASSED \033[0m\n";
A shorter bundled include file for ODE_BVP and PDE_IBVP codes.
A matrix class that constructs a DENSE matrix as a row major std::vector of DenseVectors.
An DenseVector class – a dense vector object.
An equation object base class used in the IBVP classes (and others).
Define the harmonic equation by inheriting the Equation base class.
void residual_fn(const DenseVector< _Type > &z, DenseVector< _Type > &g) const
The Berman equation.
void matrix0(const DenseVector< _Type > &x, DenseMatrix< _Type > &m) const
Define the matrix in terms of the current state vector.
Troesch_equation()
The harmonic equation is a 2nd order ODE.
void residual_fn(const DenseVector< _Type > &z, DenseVector< _Type > &B) const
A blank virtual residual function method.
void residual_fn(const DenseVector< _Type > &z, DenseVector< _Type > &B) const
A blank virtual residual function method.
A templated object for real/complex vector system of first-order ordinary differential equations.
OneD_Node_Mesh< _Type, _Xtype > & solution()
void solve2()
Formulate and solve the ODE using Newton iteration and a second-order finite difference scheme.
A base class to be inherited by objects that define residuals.
double g(1.0)
gravitational acceleration
DenseVector< double > uniform_node_vector(const double &lower, const double &upper, const std::size_t &N)
Return a DENSE vector with the nodal points of a uniform mesh distributed between the upper/lower bou...
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...
void fill_identity(CppNoddy::Sequential_Matrix_base< _Type > &A)
Fill diagonal with unit values.