26 #ifndef OOMPH_ODE_EXAMPLE_FUNCTIONS_H
27 #define OOMPH_ODE_EXAMPLE_FUNCTIONS_H
34 using namespace MathematicalConstants;
35 using namespace StringConversion;
38 namespace deriv_functions
89 double b0 = 0.5, b1 = 0, b2 = 1;
92 values[0] = b2*time*time + b1*time +b0;
98 double b1 = 0, b2 = 1;
101 deriv[0] = 2*
t*b2 + b1;
109 double a0 = 0.5, a1 = 0, a2 = 0, a3 = 1;
112 values[0] = a3*time*time*time + a2*time*time + a1*time +a0;
118 double a1 = 0, a2 = 0, a3 = 1;
121 deriv[0] = 3*
t*
t*a3 + 2*
t*a2 + a1;
129 x1[0] = 0;
x1[1] = 0;
130 x2[0] = 1.0;
x2[1] = 999.0/10;
141 deriv[0] = -100*u[0] + u[1];
142 deriv[1] = 0*u[0] - 0.1*u[1];
209 deriv[0] = -
Lambda * u[0];
252 namespace ODEFactories
257 if(exact_name ==
"damped_oscillation")
261 else if(exact_name ==
"simple_stiff")
265 else if(exact_name ==
"order_reduction")
269 else if(exact_name ==
"strong_order_reduction")
277 if(exact_name ==
"sin")
282 else if(exact_name ==
"cos")
287 else if(exact_name ==
"exp")
292 else if(exact_name ==
"poly3")
297 else if(exact_name ==
"stiff_test")
302 else if(exact_name ==
"poly2")
309 throw OomphLibError(
"Unrecognised exact solution " + exact_name,
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
Definition: oomph_definitions.h:222
Definition: oomph_utilities.h:1109
Vector< double >(* TimeSpaceToDoubleVectFctPt)(const double &t, const Vector< double > &x)
General function of space and time which returns a vector of doubles.
Definition: oomph_utilities.h:1118
Vector< double >(* TimeSpaceValueToDoubleVectFctPt)(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: oomph_utilities.h:1123
Definition: oomph_utilities.h:1166
A damped oscillation solution.
Definition: ode_example_functions.h:148
Vector< double > derivative(const double &t, const Vector< double > &x, const Vector< double > &u) const
Derivative call.
Definition: ode_example_functions.h:169
Vector< double > operator()(const double &t, const Vector< double > &x) const
Function call.
Definition: ode_example_functions.h:161
DampedOscillation()
Constructor.
Definition: ode_example_functions.h:151
double Beta
Definition: ode_example_functions.h:178
virtual ~DampedOscillation()
Virtual destructor.
Definition: ode_example_functions.h:158
double Omega
Definition: ode_example_functions.h:179
Another stiff solution: Atkinson pg. 158, also example 8.2 pg 129.
Definition: ode_example_functions.h:219
OrderReductionTest()
Constructor.
Definition: ode_example_functions.h:222
virtual ~OrderReductionTest()
Virtual destructor.
Definition: ode_example_functions.h:228
Vector< double > derivative(const double &t, const Vector< double > &x, const Vector< double > &u) const
Derivative call.
Definition: ode_example_functions.h:239
double Lambda
Definition: ode_example_functions.h:247
Vector< double > operator()(const double &t, const Vector< double > &x) const
Function call.
Definition: ode_example_functions.h:231
Another stiff solution: Atkinson equation (8.1) pg 128.
Definition: ode_example_functions.h:184
virtual ~SimpleStiffTest()
Virtual destructor.
Definition: ode_example_functions.h:194
SimpleStiffTest()
Constructor.
Definition: ode_example_functions.h:187
Vector< double > derivative(const double &t, const Vector< double > &x, const Vector< double > &u) const
Derivative call.
Definition: ode_example_functions.h:205
double Lambda
Definition: ode_example_functions.h:213
double Y_intial
Definition: ode_example_functions.h:214
Vector< double > operator()(const double &t, const Vector< double > &x) const
Function call.
Definition: ode_example_functions.h:197
double Lambda
Lame parameters.
Definition: axisym_linear_elasticity/cylinder/cylinder.cc:52
Vector< double > x1(const Vector< double > &coord)
Cartesian coordinates centered at the point (0.5,1)
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:86
Vector< double > x2(const Vector< double > &coord)
Cartesian coordinates centered at the point (1.5,1)
Definition: poisson/poisson_with_singularity/two_d_poisson.cc:102
double Beta
Definition: ff_step.cc:156
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
SolutionFunctorBase * exact_solutions_factory(const std::string &exact_name)
Definition: ode_example_functions.h:255
double Omega
Definition: osc_ring_sarah_asymptotics.h:43
Vector< double > dexp(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:77
Vector< double > dpoly2(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:95
Vector< double > dcos(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:47
Vector< double > dstiff_test(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:137
Vector< double > dsin(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:62
Vector< double > poly2(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:87
Vector< double > dpoly3(const double &t, const Vector< double > &x, const Vector< double > &u)
Definition: ode_example_functions.h:115
Vector< double > cos(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:41
Vector< double > poly3(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:107
Vector< double > stiff_test(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:126
Vector< double > sin(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:56
Vector< double > exp(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:71
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
list x
Definition: plotDoE.py:28
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86