3#ifndef TWOD_HYPERBOLIC_SYSTEM_H
4#define TWOD_HYPERBOLIC_SYSTEM_H
30 problem =
"The Hyperbolic_Conservative_System::flux_fn_x method has not been implemented.\n";
31 problem +=
"You have to implement this method to define the system.\n";
41 problem =
"The Hyperbolic_Conservative_System::flux_fn_y method has not been implemented.\n";
42 problem +=
"You have to implement this method to define the system.\n";
55 const double delta(1.e-8);
65 J.
set_col(i, (temp2 - temp1) / delta);
78 const double delta(1.e-8);
88 J.
set_col(i, (temp2 - temp1) / delta);
103 problem =
"The Hyperbolic_Conservative_System::max_charac_speed method has not\n";
104 problem +=
"been implemented. You have to implement this method to define the system.\n";
A spec for the CppNoddy Timer object.
A matrix class that constructs a DENSE matrix as a row major std::vector of DenseVectors.
void set_col(const std::size_t &col, const DenseVector< _Type > &x)
Set a column of the matrix.
An DenseVector class – a dense vector object.
A generic runtime exception.
A class to represent a two-dimensional hyperbolic system of equations.
TwoD_Hyperbolic_System(const unsigned &order)
virtual void flux_fn_y(const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &f) const
A virtual flux function for the y-derivative.
virtual void max_charac_speed(const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &c) const
A virtual method that is used to bound the characteristic speed in both directions.
virtual void flux_fn_x(const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &f) const
A virtual flux function for the x-derivative.
const unsigned ORDER_OF_SYSTEM
The order of the system of equations.
virtual void Jac_flux_fn_y(const DenseVector< double > &x, const DenseVector< double > &q, DenseMatrix< double > &J) const
A virtual function function to define the Jacobian of the y-flux function.
virtual ~TwoD_Hyperbolic_System()
An empty destructor, virtual since we have virtual methods.
virtual void edge_slopes(const int &face_index, const DenseVector< double > &x, DenseVector< double > &sigma_n) const
Define the edge boundary condition slopes.
virtual void source_fn(const DenseVector< double > &x, const DenseVector< double > &q, DenseVector< double > &r) const
virtual std::vector< bool > edge_values(const int &face_index, const DenseVector< double > &x, DenseVector< double > &q) const
Define the edge boundary conditions.
virtual void Jac_flux_fn_x(const DenseVector< double > &x, const DenseVector< double > &q, DenseMatrix< double > &J) const
A virtual function function to define the Jacobian of the x-flux function.
An object to block copying.
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...