26 #ifndef OOMPH_ODE_ELEMENTS_H
27 #define OOMPH_ODE_ELEMENTS_H
29 #include "../generic/oomph_definitions.h"
30 #include "../generic/oomph_utilities.h"
32 #include "../generic/matrices.h"
33 #include "../generic/Vector.h"
34 #include "../generic/elements.h"
35 #include "../generic/timesteppers.h"
56 build(time_stepper_pt, exact_solution_pt);
66 unsigned nvalue = exact.size();
95 double t = time_stepper_pt->
time();
98 for (
unsigned j = 0, nj = deriv.size();
j < nj;
j++)
105 residuals[
j] = deriv[
j] - dudt;
127 for (
unsigned i = 0;
i <
n;
i++)
136 residuals, jacobian,
true);
144 for (
unsigned j = 0, nj =
nvalue();
j < nj;
j++)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Definition: nodes.h:483
double value(const unsigned &i) const
Definition: nodes.h:293
Definition: elements.h:73
Data *& internal_data_pt(const unsigned &i)
Return a pointer to i-th internal data object.
Definition: elements.h:622
void fill_in_jacobian_from_internal_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian, const bool &fd_all_data=false)
Definition: elements.cc:1102
unsigned add_internal_data(Data *const &data_pt, const bool &fd=true)
Definition: elements.cc:62
Element for integrating an initial value ODE.
Definition: ode_elements.h:41
ODEElement(TimeStepper *time_stepper_pt, SolutionFunctorBase *exact_solution_pt)
Definition: ode_elements.h:53
bool Use_fd_jacobian
Definition: ode_elements.h:182
Vector< double > exact_solution(const double &t) const
Exact solution.
Definition: ode_elements.h:151
virtual void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: ode_elements.h:109
SolutionFunctorBase * Exact_solution_pt
Definition: ode_elements.h:180
ODEElement()
Default constructor: null any pointers.
Definition: ode_elements.h:44
Vector< double > derivative_function(const double &t, const Vector< double > &u)
Exact solution.
Definition: ode_elements.h:166
virtual void fill_in_contribution_to_residuals(Vector< double > &residuals)
Get residuals.
Definition: ode_elements.h:82
void build(TimeStepper *time_stepper_pt, SolutionFunctorBase *exact_solution_pt)
Store pointers, create internal data.
Definition: ode_elements.h:60
virtual ~ODEElement()
Definition: ode_elements.h:74
unsigned nvalue() const
Definition: ode_elements.h:76
virtual void fill_in_contribution_to_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &mm)
Definition: ode_elements.h:140
Definition: oomph_definitions.h:222
Definition: oomph_utilities.h:1109
virtual void jacobian(const double &t, const Vector< double > &x, const Vector< double > &u, DenseMatrix< double > &jacobian) const
Definition: oomph_utilities.h:1142
virtual Vector< double > derivative(const double &t, const Vector< double > &x, const Vector< double > &u) const =0
Call the derivative function.
virtual bool have_jacobian() const
Is a jacobian function implemented?
Definition: oomph_utilities.h:1153
Definition: timesteppers.h:231
virtual double weight(const unsigned &i, const unsigned &j) const
Access function for j-th weight for the i-th derivative.
Definition: timesteppers.h:594
void time_derivative(const unsigned &i, Data *const &data_pt, Vector< double > &deriv)
Definition: timesteppers.h:502
double & time()
Return current value of continous time.
Definition: timesteppers.h:332
const Scalar * a
Definition: level2_cplx_impl.h:32
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
t
Definition: plotPSD.py:36
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2