27 #ifndef OOMPH_SPACE_TIME_UNSTEADY_HEAT_ELEMENTS_HEADER
28 #define OOMPH_SPACE_TIME_UNSTEADY_HEAT_ELEMENTS_HEADER
32 #include <oomph-lib-config.h>
74 template<
unsigned SPATIAL_DIM>
142 void output(std::ostream& outfile,
const unsigned& nplot);
158 void output(FILE* file_pt,
const unsigned& nplot);
164 const unsigned& nplot,
171 std::ostream& outfile,
172 const unsigned& nplot,
210 const unsigned& nplot)
const
215 std::stringstream error_stream;
216 error_stream <<
"Space-time unsteady heat elements only store a single "
217 <<
"field so i must be 0 rather than " <<
i << std::endl;
227 for (
unsigned j = 0;
j < local_loop;
j++)
244 std::ofstream& file_out,
246 const unsigned& nplot,
252 std::stringstream error_stream;
253 error_stream <<
"Space-time unsteady heat elements only store a single "
254 <<
"field so i must be 0 rather than " <<
i << std::endl;
264 for (
unsigned j = 0;
j < local_loop;
j++)
276 for (
unsigned i = 0;
i < SPATIAL_DIM;
i++)
286 (*exact_soln_pt)(spatial_coordinates,
exact_soln);
297 std::ofstream& file_out,
299 const unsigned& nplot,
306 std::stringstream error_stream;
307 error_stream <<
"Space-time unsteady heat elements only store a single "
308 <<
"field so i must be 0 rather than " <<
i << std::endl;
318 for (
unsigned j = 0;
j < local_loop;
j++)
324 double interpolated_t = 0.0;
333 for (
unsigned i = 0;
i < SPATIAL_DIM;
i++)
346 (*exact_soln_pt)(interpolated_t, spatial_coordinates,
exact_soln);
367 std::stringstream error_stream;
368 error_stream <<
"These unsteady heat elements only store 1 field, \n"
369 <<
"but i is currently " <<
i << std::endl;
453 unsigned n_node =
nnode();
462 DShape dpsidx(n_node, SPATIAL_DIM + 1);
468 for (
unsigned j = 0;
j < SPATIAL_DIM;
j++)
475 for (
unsigned l = 0; l < n_node; l++)
478 for (
unsigned j = 0;
j < SPATIAL_DIM;
j++)
510 unsigned n_node =
nnode();
522 double interpolated_u = 0.0;
525 for (
unsigned l = 0; l < n_node; l++)
528 interpolated_u +=
nodal_value(l, u_nodal_index) * psi[l];
532 return interpolated_u;
558 unsigned n_node =
nnode();
570 double interpolated_u = 0.0;
573 for (
unsigned l = 0; l < n_node; l++)
576 interpolated_u +=
nodal_value(
t, l, u_nodal_index) * psi[l];
580 return interpolated_u;
604 unsigned n_node =
nnode();
613 DShape dpsidx(n_node, SPATIAL_DIM + 1);
620 double interpolated_dudt = 0.0;
623 for (
unsigned l = 0; l < n_node; l++)
627 nodal_value(l, u_nodal_index) * dpsidx(l, SPATIAL_DIM);
631 return interpolated_dudt;
646 DShape& dtestdx)
const = 0;
656 DShape& dtestdx)
const = 0;
664 const unsigned& flag);
701 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
703 :
public virtual QElement<SPATIAL_DIM + 1, NNODE_1D>,
710 :
QElement<SPATIAL_DIM + 1, NNODE_1D>(),
739 void output(std::ostream& outfile,
const unsigned& n_plot)
757 void output(FILE* file_pt,
const unsigned& n_plot)
767 const unsigned& n_plot,
772 outfile, n_plot, exact_soln_pt);
780 const unsigned& n_plot,
786 outfile, n_plot, time, exact_soln_pt);
820 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
829 double det = this->dshape_eulerian(
s, psi, dpsidx);
848 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
857 const unsigned el_dim = SPATIAL_DIM + 1;
866 s[
i] = this->integral_pt()->knot(ipt,
i);
870 return dshape_and_dtest_eulerian_ust_heat(
s, psi, dpsidx,
test, dtestdx);
885 template<
unsigned SPATIAL_DIM,
unsigned NNODE_1D>
887 :
public virtual QElement<SPATIAL_DIM, NNODE_1D>
905 template<
unsigned NNODE_1D>
924 template<
class UNSTEADY_HEAT_ELEMENT>
944 std::stringstream error_stream;
947 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
948 <<
"field so fld must be 0 rather than " << fld
958 unsigned nnod = this->
nnode();
964 for (
unsigned j = 0;
j < nnod;
j++)
967 data_values[
j] = std::make_pair(this->
node_pt(
j), fld);
992 std::stringstream error_stream;
995 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
996 <<
"field so fld must be 0 rather than " << fld
1030 std::stringstream error_stream;
1033 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1034 <<
"field so fld must be 0 rather than " << fld
1044 unsigned n_dim = this->
dim();
1047 unsigned n_node = this->
nnode();
1053 DShape dpsidx(n_node, n_dim);
1056 DShape dtestdx(n_node, n_dim);
1062 this->dshape_and_dtest_eulerian_ust_heat(
s, psi, dpsidx,
test, dtestdx);
1072 const unsigned& fld,
1080 std::stringstream error_stream;
1083 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1084 <<
"field so fld must be 0 rather than " << fld
1094 unsigned u_nodal_index = this->u_index_ust_heat();
1097 unsigned n_node = this->
nnode();
1103 this->
shape(s, psi);
1106 double interpolated_u = 0.0;
1109 for (
unsigned l = 0; l < n_node; l++)
1112 interpolated_u += this->
nodal_value(t, l, u_nodal_index) * psi[l];
1116 return interpolated_u;
1128 std::stringstream error_stream;
1131 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1132 <<
"field so fld must be 0 rather than " << fld
1142 return this->
nnode();
1154 std::stringstream error_stream;
1157 error_stream <<
"SpaceTimeUnsteadyHeat elements only store a single "
1158 <<
"field so fld must be 0 rather than " << fld
1168 const unsigned u_nodal_index = this->u_index_ust_heat();
1177 void output(std::ostream& outfile,
const unsigned& nplot)
1192 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
1205 outfile << this->interpolated_u_ust_heat(
s) <<
" ";
1208 outfile << this->interpolated_du_dt_ust_heat(
s) <<
" ";
1215 for (
unsigned t = 1;
t < n_prev;
t++)
1229 for (
unsigned t = 1;
t < n_prev;
t++)
1232 outfile << this->interpolated_u_ust_heat(
t,
s) <<
" ";
1236 outfile << std::endl;
1249 template<
class ELEMENT>
1262 template<
class ELEMENT>
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
TimeStepper *& time_stepper_pt()
Return the pointer to the timestepper.
Definition: nodes.h:238
unsigned ntstorage() const
Definition: nodes.cc:879
FaceGeometry()
Definition: space_time_unsteady_heat_elements.h:1268
FaceGeometry()
Definition: space_time_unsteady_heat_elements.h:1254
FaceGeometry()
Definition: space_time_unsteady_heat_elements.h:912
FaceGeometry()
Definition: space_time_unsteady_heat_elements.h:892
Definition: elements.h:4998
Definition: elements.h:1313
virtual unsigned nplot_points_paraview(const unsigned &nplot) const
Definition: elements.h:2862
virtual void local_coordinate_of_node(const unsigned &j, Vector< double > &s) const
Definition: elements.h:1842
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Definition: elements.h:2175
double nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2593
virtual std::string tecplot_zone_string(const unsigned &nplot) const
Definition: elements.h:3161
virtual double interpolated_x(const Vector< double > &s, const unsigned &i) const
Return FE interpolated coordinate x[i] at local coordinate s.
Definition: elements.cc:3962
virtual void shape(const Vector< double > &s, Shape &psi) const =0
int nodal_local_eqn(const unsigned &n, const unsigned &i) const
Definition: elements.h:1432
unsigned dim() const
Definition: elements.h:2611
unsigned nnode() const
Return the number of nodes.
Definition: elements.h:2210
void(* SteadyExactSolutionFctPt)(const Vector< double > &, Vector< double > &)
Definition: elements.h:1759
virtual void get_s_plot(const unsigned &i, const unsigned &nplot, Vector< double > &s, const bool &shifted_to_interior=false) const
Definition: elements.h:3148
virtual unsigned nplot_points(const unsigned &nplot) const
Definition: elements.h:3186
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Definition: elements.h:3174
void(* UnsteadyExactSolutionFctPt)(const double &, const Vector< double > &, Vector< double > &)
Definition: elements.h:1765
double dshape_eulerian(const Vector< double > &s, Shape &psi, DShape &dpsidx) const
Definition: elements.cc:3298
static DenseMatrix< double > Dummy_matrix
Definition: elements.h:227
TimeStepper *& position_time_stepper_pt()
Return a pointer to the position timestepper.
Definition: nodes.h:1022
Definition: oomph_definitions.h:222
Definition: elements.h:3439
Definition: projection.h:183
SpaceTimeUnsteadyHeat upgraded to become projectable.
Definition: space_time_unsteady_heat_elements.h:927
int local_equation(const unsigned &fld, const unsigned &j)
Return local equation number of value j in field fld.
Definition: space_time_unsteady_heat_elements.h:1147
double get_field(const unsigned &t, const unsigned &fld, const Vector< double > &s)
Definition: space_time_unsteady_heat_elements.h:1071
unsigned nhistory_values_for_projection(const unsigned &fld)
Definition: space_time_unsteady_heat_elements.h:985
void output(std::ostream &outfile, const unsigned &nplot)
Definition: space_time_unsteady_heat_elements.h:1177
unsigned nhistory_values_for_coordinate_projection()
Definition: space_time_unsteady_heat_elements.h:1012
unsigned nvalue_of_field(const unsigned &fld)
Return number of values in field fld: One per node.
Definition: space_time_unsteady_heat_elements.h:1121
unsigned nfields_for_projection()
Number of fields to be projected: Just one.
Definition: space_time_unsteady_heat_elements.h:976
ProjectableUnsteadyHeatSpaceTimeElement()
Definition: space_time_unsteady_heat_elements.h:931
double jacobian_and_shape_of_field(const unsigned &fld, const Vector< double > &s, Shape &psi)
Definition: space_time_unsteady_heat_elements.h:1021
Vector< std::pair< Data *, unsigned > > data_values_of_field(const unsigned &fld)
Definition: space_time_unsteady_heat_elements.h:937
Definition: Qelements.h:459
Definition: space_time_unsteady_heat_elements.h:705
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
Definition: space_time_unsteady_heat_elements.h:850
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.
Definition: space_time_unsteady_heat_elements.h:822
void output(FILE *file_pt, const unsigned &n_plot)
Definition: space_time_unsteady_heat_elements.h:757
void output_fct(std::ostream &outfile, const unsigned &n_plot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt)
Definition: space_time_unsteady_heat_elements.h:779
QUnsteadyHeatSpaceTimeElement()
Definition: space_time_unsteady_heat_elements.h:709
void output(FILE *file_pt)
Definition: space_time_unsteady_heat_elements.h:748
void output(std::ostream &outfile)
Definition: space_time_unsteady_heat_elements.h:730
void output(std::ostream &outfile, const unsigned &n_plot)
Definition: space_time_unsteady_heat_elements.h:739
void output_fct(std::ostream &outfile, const unsigned &n_plot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Definition: space_time_unsteady_heat_elements.h:766
static const unsigned Initial_Nvalue
Definition: space_time_unsteady_heat_elements.h:810
unsigned required_nvalue(const unsigned &n) const
Required number of 'values' (pinned or dofs) at node n.
Definition: space_time_unsteady_heat_elements.h:721
Definition: space_time_unsteady_heat_elements.h:52
void(* SpaceTimeUnsteadyHeatSourceFctPt)(const double &time, const Vector< double > &x, double &u)
Definition: space_time_unsteady_heat_elements.h:56
virtual SpaceTimeUnsteadyHeatSourceFctPt & source_fct_pt()=0
Access function: Pointer to source function.
Definition: space_time_unsteady_heat_elements.h:77
void output_fct(std::ostream &outfile, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt)
Definition: space_time_unsteady_heat_elements.cc:407
void compute_error(std::ostream &outfile, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt, double &error, double &norm)
Get error and norm against exact solution.
Definition: space_time_unsteady_heat_elements.cc:529
double *& beta_pt()
Pointer to Beta parameter (thermal conductivity)
Definition: space_time_unsteady_heat_elements.h:442
void fill_in_contribution_to_residuals(Vector< double > &residuals)
Compute element residual Vector (wrapper)
Definition: space_time_unsteady_heat_elements.h:488
void scalar_value_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot) const
Definition: space_time_unsteady_heat_elements.h:208
SpaceTimeUnsteadyHeatEquations(const SpaceTimeUnsteadyHeatEquations &dummy)=delete
Broken copy constructor.
void(* SpaceTimeUnsteadyHeatSourceFctPt)(const double &time, const Vector< double > &x, double &u)
Definition: space_time_unsteady_heat_elements.h:82
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Compute element residual Vector and element Jacobian matrix (wrapper)
Definition: space_time_unsteady_heat_elements.h:498
void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, FiniteElement::SteadyExactSolutionFctPt exact_soln_pt) const
Definition: space_time_unsteady_heat_elements.h:243
double interpolated_u_ust_heat(const Vector< double > &s) const
Return FE representation of function value u(s) at local coordinate s.
Definition: space_time_unsteady_heat_elements.h:507
void output(FILE *file_pt)
C_style output with default number of plot points.
Definition: space_time_unsteady_heat_elements.h:146
const double & alpha() const
Alpha parameter (thermal inertia)
Definition: space_time_unsteady_heat_elements.h:418
double * Beta_pt
Pointer to Beta parameter (thermal conductivity)
Definition: space_time_unsteady_heat_elements.h:678
unsigned nscalar_paraview() const
Definition: space_time_unsteady_heat_elements.h:199
SpaceTimeUnsteadyHeatSourceFctPt source_fct_pt() const
Access function: Pointer to source function. Const version.
Definition: space_time_unsteady_heat_elements.h:388
void compute_norm(double &norm)
Compute norm of FE solution.
Definition: space_time_unsteady_heat_elements.cc:242
double * Alpha_pt
Pointer to Alpha parameter (thermal inertia)
Definition: space_time_unsteady_heat_elements.h:675
unsigned self_test()
Self-test: Return 0 for OK.
Definition: space_time_unsteady_heat_elements.cc:294
double *& alpha_pt()
Pointer to Alpha parameter (thermal inertia)
Definition: space_time_unsteady_heat_elements.h:426
static double Default_beta_parameter
Default value for Beta parameter (thermal conductivity)
Definition: space_time_unsteady_heat_elements.h:687
std::string scalar_name_paraview(const unsigned &i) const
Definition: space_time_unsteady_heat_elements.h:356
virtual double dshape_and_dtest_eulerian_at_knot_ust_heat(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void output(std::ostream &outfile)
Output with default number of plot points.
Definition: space_time_unsteady_heat_elements.h:130
double interpolated_du_dt_ust_heat(const Vector< double > &s) const
Definition: space_time_unsteady_heat_elements.h:601
const double & beta() const
Beta parameter (thermal conductivity)
Definition: space_time_unsteady_heat_elements.h:434
virtual void fill_in_generic_residual_contribution_ust_heat(Vector< double > &residuals, DenseMatrix< double > &jacobian, const unsigned &flag)
Definition: space_time_unsteady_heat_elements.cc:65
virtual double dshape_and_dtest_eulerian_ust_heat(const Vector< double > &s, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void disable_ALE()
Definition: space_time_unsteady_heat_elements.h:107
void output_element_paraview(std::ofstream &outfile, const unsigned &nplot)
Definition: space_time_unsteady_heat_elements.cc:714
virtual unsigned u_index_ust_heat() const
Definition: space_time_unsteady_heat_elements.h:543
SpaceTimeUnsteadyHeatSourceFctPt Source_fct_pt
Pointer to source function:
Definition: space_time_unsteady_heat_elements.h:667
double interpolated_u_ust_heat(const unsigned &t, const Vector< double > &s) const
Definition: space_time_unsteady_heat_elements.h:554
void scalar_value_fct_paraview(std::ofstream &file_out, const unsigned &i, const unsigned &nplot, const double &time, FiniteElement::UnsteadyExactSolutionFctPt exact_soln_pt) const
Definition: space_time_unsteady_heat_elements.h:296
bool ALE_is_disabled
Definition: space_time_unsteady_heat_elements.h:672
double du_dt_ust_heat(const unsigned &n) const
Definition: space_time_unsteady_heat_elements.h:586
void get_flux(const Vector< double > &s, Vector< double > &flux) const
Get flux: flux[i]=du/dx_i.
Definition: space_time_unsteady_heat_elements.h:450
SpaceTimeUnsteadyHeatEquations()
Definition: space_time_unsteady_heat_elements.h:91
void enable_ALE()
Definition: space_time_unsteady_heat_elements.h:118
SpaceTimeUnsteadyHeatSourceFctPt & source_fct_pt()
Access function: Pointer to source function.
Definition: space_time_unsteady_heat_elements.h:380
static double Default_alpha_parameter
Default value for Alpha parameter (thermal inertia)
Definition: space_time_unsteady_heat_elements.h:683
virtual void get_source_ust_heat(const double &t, const unsigned &ipt, const Vector< double > &x, double &source) const
Definition: space_time_unsteady_heat_elements.h:397
unsigned ntstorage() const
Definition: timesteppers.h:601
RealScalar s
Definition: level1_cplx_impl.h:130
squared absolute sa ArrayBase::abs2 DOXCOMMA MatrixBase::cwiseAbs2 sa Eigen::abs2 DOXCOMMA Eigen::pow DOXCOMMA ArrayBase::square nearest sa Eigen::floor DOXCOMMA Eigen::ceil DOXCOMMA ArrayBase::round nearest integer not less than the given sa Eigen::floor DOXCOMMA ArrayBase::ceil not a number test
Definition: GlobalFunctions.h:109
void flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
void exact_soln(const double &time, const Vector< double > &x, Vector< double > &soln)
Definition: unstructured_two_d_curved.cc:301
void source(const Vector< double > &x, Vector< double > &f)
Source function.
Definition: unstructured_two_d_circle.cc:46
int error
Definition: calibrate.py:297
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
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
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
unsigned el_dim
dimension
Definition: overloaded_cartesian_element_body.h:30
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2