27 #ifndef OOMPH_DISCONTINUOUS_GALERKIN_SPACE_TIME_UNSTEADY_HEAT_ELEMENTS_HEADER
28 #define OOMPH_DISCONTINUOUS_GALERKIN_SPACE_TIME_UNSTEADY_HEAT_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
50 class SpaceTimeUnsteadyHeatEquationsBase :
public virtual FiniteElement
73 template<
unsigned SPATIAL_DIM>
141 void output(std::ostream& outfile,
const unsigned& nplot);
157 void output(FILE* file_pt,
const unsigned& nplot);
163 const unsigned& nplot,
170 std::ostream& outfile,
171 const unsigned& nplot,
209 const unsigned& nplot)
const
214 std::stringstream error_stream;
215 error_stream <<
"Space-time unsteady heat elements only store a single "
216 <<
"field so i must be 0 rather than " <<
i << std::endl;
218 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
226 for (
unsigned j = 0; j < local_loop; j++)
243 std::ofstream& file_out,
245 const unsigned& nplot,
251 std::stringstream error_stream;
252 error_stream <<
"Space-time unsteady heat elements only store a single "
253 <<
"field so i must be 0 rather than " <<
i << std::endl;
255 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
263 for (
unsigned j = 0; j < local_loop; j++)
275 for (
unsigned i = 0;
i < SPATIAL_DIM;
i++)
285 (*exact_soln_pt)(spatial_coordinates, exact_soln);
288 file_out << exact_soln[0] << std::endl;
296 std::ofstream& file_out,
298 const unsigned& nplot,
305 std::stringstream error_stream;
306 error_stream <<
"Space-time unsteady heat elements only store a single "
307 <<
"field so i must be 0 rather than " <<
i << std::endl;
309 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
317 for (
unsigned j = 0; j < local_loop; j++)
323 double interpolated_t = 0.0;
332 for (
unsigned i = 0;
i < SPATIAL_DIM;
i++)
345 (*exact_soln_pt)(interpolated_t, spatial_coordinates, exact_soln);
348 file_out << exact_soln[0] << std::endl;
366 std::stringstream error_stream;
367 error_stream <<
"These unsteady heat elements only store 1 field, \n"
368 <<
"but i is currently " <<
i << std::endl;
370 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
399 double& source)
const
411 (*Source_fct_pt)(
t, x, source);
452 unsigned n_node =
nnode();
461 DShape dpsidx(n_node, SPATIAL_DIM + 1);
467 for (
unsigned j = 0; j < SPATIAL_DIM; j++)
474 for (
unsigned l = 0; l < n_node; l++)
477 for (
unsigned j = 0; j < SPATIAL_DIM; j++)
480 flux[j] +=
nodal_value(l, u_nodal_index) * dpsidx(l, j);
509 unsigned n_node =
nnode();
521 double interpolated_u = 0.0;
524 for (
unsigned l = 0; l < n_node; l++)
527 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
531 return interpolated_u;
557 unsigned n_node =
nnode();
569 double interpolated_u = 0.0;
572 for (
unsigned l = 0; l < n_node; l++)
575 interpolated_u +=
nodal_value(
t, l, u_nodal_index) * psi[l];
579 return interpolated_u;
603 unsigned n_node =
nnode();
612 DShape dpsidx(n_node, SPATIAL_DIM + 1);
619 double interpolated_dudt = 0.0;
622 for (
unsigned l = 0; l < n_node; l++)
626 nodal_value(l, u_nodal_index) * dpsidx(l, SPATIAL_DIM);
630 return interpolated_dudt;
644 DShape& dtestdx)
const = 0;
654 DShape& dtestdx)
const = 0;
663 const unsigned& flag);
700 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
702 :
public virtual QElement<SPATIAL_DIM + 1, NNODE_1D>,
709 :
QElement<SPATIAL_DIM + 1, NNODE_1D>(),
738 void output(std::ostream& outfile,
const unsigned& n_plot)
756 void output(FILE* file_pt,
const unsigned& n_plot)
766 const unsigned& n_plot,
771 outfile, n_plot, exact_soln_pt);
779 const unsigned& n_plot,
785 outfile, n_plot, time, exact_soln_pt);
819 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
831 const unsigned el_dim = this->dim();
835 this->dshape_local(
s, psi, dpsidx);
842 this->local_to_eulerian_mapping(dpsidx, inverse_jacobian);
845 this->transform_derivatives(inverse_jacobian, dpsidx);
854 std::ostringstream error_message_stream;
857 error_message_stream <<
"Need 3D space-time elements for this to work!"
862 OOMPH_CURRENT_FUNCTION,
863 OOMPH_EXCEPTION_LOCATION);
868 double test_values[3][NNODE_1D];
869 double dtest_values[3][NNODE_1D];
875 OneDimLagrange::shape<NNODE_1D>(
s[0], test_values[0]);
876 OneDimLagrange::shape<NNODE_1D>(
s[1], test_values[1]);
877 OneDimLagrange::dshape<NNODE_1D>(
s[0], dtest_values[0]);
878 OneDimLagrange::dshape<NNODE_1D>(
s[1], dtest_values[1]);
881 OneDimDiscontinuousGalerkin::shape<NNODE_1D>(
s[2], test_values[2]);
882 OneDimDiscontinuousGalerkin::dshape<NNODE_1D>(
s[2], dtest_values[2]);
885 for (
unsigned k = 0; k < NNODE_1D; k++)
888 for (
unsigned j = 0; j < NNODE_1D; j++)
891 for (
unsigned i = 0;
i < NNODE_1D;
i++)
895 dtest_values[0][
i] * test_values[1][j] * test_values[2][k];
899 test_values[0][
i] * dtest_values[1][j] * test_values[2][k];
903 test_values[0][
i] * test_values[1][j] * dtest_values[2][k];
907 test_values[0][
i] * test_values[1][j] * test_values[2][k];
917 this->transform_derivatives(inverse_jacobian, dtestdx);
930 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
936 DShape& dtestdx)
const
939 const unsigned el_dim = SPATIAL_DIM + 1;
942 Vector<double>
s(el_dim, 0.0);
945 for (
unsigned i = 0;
i < el_dim;
i++)
948 s[
i] = this->integral_pt()->knot(ipt,
i);
952 return dshape_and_dtest_eulerian_ust_heat(
s, psi, dpsidx, test, dtestdx);
967 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
968 class FaceGeometry<QUnsteadyHeatSpaceTimeElement<SPATIAL_DIM, NNODE_1D>>
969 :
public virtual QElement<SPATIAL_DIM, NNODE_1D>
987 template<
unsigned NNODE_1D>
988 class FaceGeometry<QUnsteadyHeatSpaceTimeElement<1, NNODE_1D>>
989 :
public virtual PointElement
1006 template<
class UNSTEADY_HEAT_ELEMENT>
1007 class ProjectableUnsteadyHeatSpaceTimeElement
1008 :
public virtual ProjectableElement<UNSTEADY_HEAT_ELEMENT>
1026 std::stringstream error_stream;
1029 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1030 <<
"field so fld must be 0 rather than " << fld
1035 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1040 unsigned nnod = this->
nnode();
1046 for (
unsigned j = 0; j < nnod; j++)
1049 data_values[j] = std::make_pair(this->
node_pt(j), fld);
1074 std::stringstream error_stream;
1077 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1078 <<
"field so fld must be 0 rather than " << fld
1083 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1112 std::stringstream error_stream;
1115 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1116 <<
"field so fld must be 0 rather than " << fld
1121 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1126 unsigned n_dim = this->
dim();
1129 unsigned n_node = this->
nnode();
1135 DShape dpsidx(n_node, n_dim);
1138 DShape dtestdx(n_node, n_dim);
1144 this->dshape_and_dtest_eulerian_ust_heat(
s, psi, dpsidx, test, dtestdx);
1154 const unsigned& fld,
1162 std::stringstream error_stream;
1165 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1166 <<
"field so fld must be 0 rather than " << fld
1171 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1176 unsigned u_nodal_index = this->u_index_ust_heat();
1179 unsigned n_node = this->
nnode();
1185 this->
shape(s, psi);
1188 double interpolated_u = 0.0;
1191 for (
unsigned l = 0; l < n_node; l++)
1194 interpolated_u += this->
nodal_value(t, l, u_nodal_index) * psi[l];
1198 return interpolated_u;
1210 std::stringstream error_stream;
1213 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1214 <<
"field so fld must be 0 rather than " << fld
1219 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1224 return this->
nnode();
1236 std::stringstream error_stream;
1239 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1240 <<
"field so fld must be 0 rather than " << fld
1245 error_stream.str(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION);
1250 const unsigned u_nodal_index = this->u_index_ust_heat();
1259 void output(std::ostream& outfile,
const unsigned& nplot)
1262 unsigned el_dim = this->
dim();
1274 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
1280 for (
unsigned i = 0;
i < el_dim;
i++)
1287 outfile << this->interpolated_u_ust_heat(
s) <<
" ";
1290 outfile << this->interpolated_du_dt_ust_heat(
s) <<
" ";
1297 for (
unsigned t = 1;
t < n_prev;
t++)
1300 for (
unsigned i = 0;
i < el_dim;
i++)
1311 for (
unsigned t = 1;
t < n_prev;
t++)
1314 outfile << this->interpolated_u_ust_heat(
t,
s) <<
" ";
1318 outfile << std::endl;
1331 template<
class ELEMENT>
1332 class FaceGeometry<ProjectableUnsteadyHeatSpaceTimeElement<ELEMENT>>
1333 :
public virtual FaceGeometry<ELEMENT>
1344 template<
class ELEMENT>
1346 FaceGeometry<ProjectableUnsteadyHeatSpaceTimeElement<ELEMENT>>>
1347 :
public virtual FaceGeometry<FaceGeometry<ELEMENT>>
A Class for the derivatives of shape functions The class design is essentially the same as Shape,...
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
unsigned ntstorage() const
Return total number of doubles stored per value to record time history of each value (one for steady ...
FaceGeometry()
Constructor: Call the constructor for the appropriate lower-dimensional QElement.
FaceGeometry()
Constructor: Call the constructor for the appropriate lower-dimensional QElement.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...
virtual unsigned nplot_points_paraview(const unsigned &nplot) const
Return the number of actual plot points for paraview plot with parameter nplot. Broken virtual; can b...
virtual void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Get local coordinates of node j in the element; vector sets its own size (broken virtual)
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
double nodal_value(const unsigned &n, const unsigned &i) const
Return the i-th value stored at local node n. Produces suitably interpolated values for hanging nodes...
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Return string for tecplot zone header (when plotting nplot points in each "coordinate direction")
virtual void shape(const Vector< double > &s, Shape &psi) const =0
Calculate the geometric shape functions at local coordinate s. This function must be overloaded for e...
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Return the local equation number corresponding to the i-th value at the n-th local node.
unsigned dim() const
Return the spatial dimension of the element, i.e. the number of local coordinates required to paramet...
unsigned nnode() const
Return the number of nodes.
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Function pointer for function that computes vector-valued steady "exact solution" as .
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Get cector of local coordinates of plot point i (when plotting nplot points in each "coordinate direc...
virtual unsigned nplot_points(const unsigned &nplot) const
Return total number of plot points (when plotting nplot points in each "coordinate direction")
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Compute the geometric shape functions and also first derivatives w.r.t. global coordinates at local c...
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Add tecplot zone "footer" to output stream (when plotting nplot points in each "coordinate direction"...
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Function pointer for function that computes Vector-valued time-dependent function as .
static DenseMatrix< double > Dummy_matrix
Empty dense matrix used as a dummy argument to combined residual and jacobian functions in the case w...
TimeStepper *& position_time_stepper_pt()
Return a pointer to the position timestepper.
An OomphLibError object which should be thrown when an run-time error is encountered....
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
int local_equation(const unsigned &fld, const unsigned &j)
Return local equation number of value j in field fld.
double get_field(const unsigned &t, const unsigned &fld, const Vector< double > &s)
Return interpolated field fld at local coordinate s, at time level t (t=0: present; t>0: history valu...
unsigned nhistory_values_for_projection(const unsigned &fld)
Number of history values to be stored for fld-th field. (Note: count includes current value!...
void output(std::ostream &outfile, const unsigned &nplot)
Output FE representation of soln: x,t,u or x,y,t,u at n_plot^(SPATIAL_DIM+1) plot points.
unsigned nhistory_values_for_coordinate_projection()
Number of positional history values (Note: count includes current value!)
unsigned nvalue_of_field(const unsigned &fld)
Return number of values in field fld: One per node.
unsigned nfields_for_projection()
Number of fields to be projected: Just one.
ProjectableUnsteadyHeatSpaceTimeElement()
Constructor [this was only required explicitly from gcc 4.5.2 onwards...].
double jacobian_and_shape_of_field(const unsigned &fld, const Vector< double > &s, Shape &psi)
Return Jacobian of mapping and shape functions of field fld at local coordinate s.
Vector< std::pair< Data *, unsigned > > data_values_of_field(const unsigned &fld)
Specify the values associated with field fld. The information is returned in a vector of pairs which ...
/////////////////////////////////////////////////////////////////////// /////////////////////////////...
//////////////////////////////////////////////////////////////////////// ////////////////////////////...
QUnsteadyHeatSpaceTimeElement(const QUnsteadyHeatSpaceTimeElement< SPATIAL_DIM, NNODE_1D > &dummy)=delete
Broken copy constructor.
double dshape_and_dtest_eulerian_at_knot_ust_heat(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Shape/test functions and derivs w.r.t. to global coords at integration point ipt; return Jacobian of ...
double dshape_and_dtest_eulerian_ust_heat(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const
Shape/test functions & derivs. w.r.t. to global coords. Return Jacobian.
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: x,t,u or x,y,t,u at n_plot^(SPATIAL_DIM+1) plot points.
void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Output function for a time-dependent exact solution. x,t,u_exact or x,y,t,u_exact at n_plot^(SPATIAL_...
QUnsteadyHeatSpaceTimeElement()
Constructor: Call constructors for QElement and SpaceTimeUnsteadyHeat equations.
void output(FILE *file_pt)
C-style output function: x,t,u or x,y,t,u.
void output(std::ostream &outfile)
Output function: x,t,u or x,y,t,u.
void output(std::ostream &outfile, const unsigned &n_plot)
Output function: x,t,u or x,y,t,u at n_plot^(SPATIAL_DIM+1) plot points.
void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output function for an exact solution: x,t,u_exact or x,y,t,u_exact at n_plot^(SPATIAL_DIM+1) plot po...
static const unsigned Initial_Nvalue
Static array of ints to hold number of variables at nodes: Initial_Nvalue[n].
unsigned required_nvalue(const unsigned &n) const
Required number of 'values' (pinned or dofs) at node n.
A Class for shape functions. In simple cases, the shape functions have only one index that can be tho...
Base class so that we don't need to know the dimension just to set the source function!
void(* SpaceTimeUnsteadyHeatSourceFctPt)(const double &time, const Vector< double > &x, double &u)
Function pointer to source function fct(t,x,f(x,t)) – x is a Vector!
virtual SpaceTimeUnsteadyHeatSourceFctPt & source_fct_pt()=0
Access function: Pointer to source function.
A class for all isoparametric elements that solve the SpaceTimeUnsteadyHeat equations.
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Output exact soln: x,y,u_exact or x,y,z,u_exact at nplot^SPATIAL_DIM plot points.
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Get error and norm against exact solution.
virtual void fill_in_generic_residual_contribution_ust_heat(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Compute element residual Vector only (if flag=and/or element Jacobian matrix.
double *& beta_pt()
Pointer to Beta parameter (thermal conductivity)
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute element residual Vector (wrapper)
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Write values of the i-th scalar field at the plot points. Needs to be implemented for each new specif...
SpaceTimeUnsteadyHeatEquations(const SpaceTimeUnsteadyHeatEquations &dummy)=delete
Broken copy constructor.
void(* SpaceTimeUnsteadyHeatSourceFctPt)(const double &time, const Vector< double > &x, double &u)
Function pointer to source function fct(t,x,f(x,t)) – x is a Vector! DRAIG: Why is this here?...
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Compute element residual Vector and element Jacobian matrix (wrapper)
void compute_error(std::ostream &outfile, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt, const double &time, double &error, double &norm)
Get error and norm against exact solution.
void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const
Write values of the i-th scalar field at the plot points. Needs to be implemented for each new specif...
double interpolated_u_ust_heat(const Vector< double > &s) const
Return FE representation of function value u(s) at local coordinate s.
void output(FILE *file_pt)
C_style output with default number of plot points.
virtual void output_fct(std::ostream &outfile, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Output exact soln: x,y,u_exact or x,y,z,u_exact at nplot^SPATIAL_DIM plot points (time-dependent vers...
void output(std::ostream &outfile, const unsigned &nplot)
Output FE representation of soln: x,y,u or x,y,z,u at nplot^SPATIAL_DIM plot points.
const double & alpha() const
Alpha parameter (thermal inertia)
double * Beta_pt
Pointer to Beta parameter (thermal conductivity)
unsigned nscalar_paraview() const
Number of scalars/fields output by this element. Reimplements broken virtual function in base class.
SpaceTimeUnsteadyHeatSourceFctPt source_fct_pt() const
Access function: Pointer to source function. Const version.
void compute_norm(double &norm)
Compute norm of FE solution.
double * Alpha_pt
Pointer to Alpha parameter (thermal inertia)
unsigned self_test()
Self-test: Return 0 for OK.
double *& alpha_pt()
Pointer to Alpha parameter (thermal inertia)
static double Default_beta_parameter
Static default value for the Beta parameter (thermal conductivity): One for natural scaling.
std::string scalar_name_paraview(const unsigned &i) const
Name of the i-th scalar field. Default implementation returns V1 for the first one,...
virtual double dshape_and_dtest_eulerian_at_knot_ust_heat(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
Shape/test functions and derivs w.r.t. to global coords at integration point ipt; return Jacobian of ...
void output(std::ostream &outfile)
Output with default number of plot points.
double interpolated_du_dt_ust_heat(const Vector< double > &s) const
Return FE representation of function value du/dt(s) at local coordinate s.
const double & beta() const
Beta parameter (thermal conductivity)
void output(FILE *file_pt, const unsigned &nplot)
C-style output FE representation of soln: x,y,u or x,y,z,u at nplot^SPATIAL_DIM plot points.
virtual void fill_in_generic_residual_contribution_ust_heat(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Compute element residual Vector only (if flag=and/or element Jacobian matrix.
virtual double dshape_and_dtest_eulerian_ust_heat(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
Shape/test functions and derivs w.r.t. to global coords at local coordinate s; return Jacobian of map...
void disable_ALE()
Disable ALE, i.e. assert the mesh is not moving – you do this at your own risk!
void output_element_paraview(std::ofstream &outfile, const unsigned &nplot)
C-style output FE representation of soln: x,y,u or x,y,z,u at nplot^SPATIAL_DIM plot points.
virtual unsigned u_index_ust_heat() const
Return the index at which the unknown value is stored. The default value, 0, is appropriate for singl...
SpaceTimeUnsteadyHeatSourceFctPt Source_fct_pt
Pointer to source function:
double interpolated_u_ust_heat(const unsigned &t, const Vector< double > &s) const
Return FE representation of function value u(s) at local coordinate s at previous time t (t=0: presen...
void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const
Write values of the i-th scalar field at the plot points. Needs to be implemented for each new specif...
bool ALE_is_disabled
Boolean flag to indicate if ALE formulation is disabled when time-derivatives are computed....
double du_dt_ust_heat(const unsigned &n) const
Calculate du/dt at the n-th local node. Uses suitably interpolated value for hanging nodes.
void get_flux(const Vector< double > &s, Vector< double > &flux) const
Get flux: flux[i]=du/dx_i.
SpaceTimeUnsteadyHeatEquations()
Constructor: Initialises the Source_fct_pt to null and sets flag to use ALE formulation of the equati...
void enable_ALE()
(Re-)enable ALE, i.e. take possible mesh motion into account when evaluating the time-derivative....
SpaceTimeUnsteadyHeatSourceFctPt & source_fct_pt()
Access function: Pointer to source function.
static double Default_alpha_parameter
Static default value for the Alpha parameter (thermal inertia): One for natural scaling.
virtual void get_source_ust_heat(const double &t, const unsigned &ipt, const Vector< double > &x, double &source) const
Get source term at continous time t and (Eulerian) position x. Virtual so it can be overloaded in der...
unsigned ntstorage() const
Return the number of doubles required to represent history (one for steady)
std::string string(const unsigned &i)
Return the i-th string or "" if the relevant string hasn't been defined.
//////////////////////////////////////////////////////////////////// ////////////////////////////////...