30 #ifndef OOMPH_MULTI_DOMAIN_BOUSSINESQ_ELEMENTS_HEADER
31 #define OOMPH_MULTI_DOMAIN_BOUSSINESQ_ELEMENTS_HEADER
45 namespace MultiDomainBoussinesqHelper
62 template<
class NST_ELEMENT,
class AD_ELEMENT>
82 const double&
ra()
const
99 NST_ELEMENT::further_build();
104 cast_father_element_pt =
dynamic_cast<
106 this->father_element_pt());
110 this->
Ra_pt = cast_father_element_pt->
ra_pt();
130 const unsigned interaction = 0;
138 const double interpolated_t = adv_diff_el_pt->interpolated_u_adv_diff(
146 const unsigned n_dim = this->
dim();
147 for (
unsigned i = 0;
i < n_dim;
i++)
162 #ifdef USE_FD_FOR_DERIVATIVES_WRT_EXTERNAL_DATA_IN_MULTI_DOMAIN_BOUSSINESQ
188 residuals, jacobian, mass_matrix);
208 const unsigned n_dim = this->
dim();
209 unsigned u_nodal_nst[n_dim];
210 for (
unsigned i = 0;
i < n_dim;
i++)
212 u_nodal_nst[
i] = this->u_index_nst(
i);
216 const unsigned n_node = this->
nnode();
219 Shape psif(n_node), testf(n_node);
220 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
226 int local_eqn = 0, local_unknown = 0;
232 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
238 double J = this->dshape_and_dtest_eulerian_at_knot_nst(
239 ipt, psif, dpsifdx, testf, dtestfdx);
257 dbody_dexternal_element_data,
258 global_eqn_number_of_external_element_data);
261 const unsigned n_external_element_data =
262 global_eqn_number_of_external_element_data.size();
265 for (
unsigned l = 0; l < n_node; l++)
270 unsigned n_master = 1;
271 double hang_weight = 1.0;
280 n_master = hang_info_pt->
nmaster();
289 for (
unsigned m = 0;
m < n_master;
m++)
305 for (
unsigned i = 0;
i < n_dim;
i++)
311 local_eqn = this->local_hang_eqn(
323 for (
unsigned l2 = 0; l2 < n_external_element_data; l2++)
328 global_eqn_number_of_external_element_data[l2]);
329 if (local_unknown >= 0)
332 jacobian(local_eqn, local_unknown) +=
333 dbody_dexternal_element_data(
i, l2) * testf(l) *
346 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const
349 NST_ELEMENT::get_dof_numbers_for_unknowns(dof_lookup_list);
355 return NST_ELEMENT::ndof_types();
374 template<
class AD_ELEMENT,
class NST_ELEMENT>
400 void output(std::ostream& outfile,
const unsigned& nplot)
403 unsigned n_dim = this->
dim();
411 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
417 for (
unsigned i = 0;
i < n_dim;
i++)
423 outfile << AD_ELEMENT::interpolated_u_adv_diff(
s) << std::endl;
425 outfile << std::endl;
446 void output(FILE* file_pt,
const unsigned& n_plot)
462 unsigned interaction = 0;
469 nst_el_pt->interpolated_u_nst(
482 #ifdef USE_FD_FOR_DERIVATIVES_WRT_EXTERNAL_DATA_IN_MULTI_DOMAIN_BOUSSINESQ
502 Vector<std::set<FiniteElement*>>
const& external_elements_pt,
503 std::set<std::pair<Data*, unsigned>>& paired_interaction_data);
516 residuals, jacobian, mass_matrix);
529 unsigned interaction = 0;
538 source_el_pt->dinterpolated_u_nst_ddata(
553 const unsigned u_nodal_adv_diff = this->u_index_adv_diff();
556 const unsigned n_node = this->
nnode();
559 const unsigned n_dim = this->
dim();
563 DShape dpsidx(n_node, n_dim), dtestdx(n_node, n_dim);
569 int local_eqn = 0, local_unknown = 0;
575 const double peclet = this->
pe();
578 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
584 double J = this->dshape_and_dtest_eulerian_at_knot_adv_diff(
585 ipt, psi, dpsidx,
test, dtestdx);
593 for (
unsigned l = 0; l < n_node; l++)
596 for (
unsigned j = 0;
j < n_dim;
j++)
598 interpolated_dudx[
j] +=
612 for (
unsigned i2 = 0; i2 < n_dim; i2++)
618 dwind_dexternal_element_data,
619 global_eqn_number_of_external_element_data);
623 const unsigned n_external_element_data =
624 global_eqn_number_of_external_element_data.size();
627 for (
unsigned l = 0; l < n_node; l++)
631 unsigned n_master = 1;
632 double hang_weight = 1.0;
641 n_master = hang_info_pt->
nmaster();
650 for (
unsigned m = 0;
m < n_master;
m++)
668 local_eqn = this->local_hang_eqn(
680 for (
unsigned l2 = 0; l2 < n_external_element_data; l2++)
685 global_eqn_number_of_external_element_data[l2]);
686 if (local_unknown >= 0)
689 jacobian(local_eqn, local_unknown) -=
690 peclet * dwind_dexternal_element_data[l2] *
691 interpolated_dudx[i2] *
test(l) * hang_weight *
W;
703 std::list<std::pair<unsigned long, unsigned>>& dof_lookup_list)
const
706 unsigned n_node = this->
nnode();
709 std::pair<unsigned, unsigned> dof_lookup;
712 for (
unsigned n = 0;
n < n_node;
n++)
718 for (
unsigned v = 0;
v < nv;
v++)
726 if (local_eqn_number >= 0)
730 dof_lookup.first = this->
eqn_number(local_eqn_number);
733 dof_lookup.second = 0;
736 dof_lookup_list.push_front(dof_lookup);
762 template<
class AD_ELEMENT,
class NST_ELEMENT>
765 Vector<std::set<FiniteElement*>>
const& external_elements_pt,
766 std::set<std::pair<Data*, unsigned>>& paired_interaction_data)
769 const unsigned interaction = 0;
773 for (std::set<FiniteElement*>::iterator it =
774 external_elements_pt[interaction].begin();
775 it != external_elements_pt[interaction].end();
782 unsigned nnod = external_fluid_el_pt->nnode();
783 for (
unsigned j = 0;
j < nnod;
j++)
786 Data* veloc_data_pt = external_fluid_el_pt->node_pt(
j);
789 const unsigned n_dim = this->dim();
790 for (
unsigned i = 0;
i < n_dim;
i++)
793 unsigned val = external_fluid_el_pt->u_index_nst(
i);
797 paired_interaction_data.insert(std::make_pair(veloc_data_pt,
val));
814 template<
class NST_ELEMENT,
class AD_ELEMENT>
837 const double&
ra()
const
870 #ifdef USE_FD_JACOBIAN_NST_IN_MULTI_DOMAIN_BOUSSINESQ
898 residuals, jacobian, mass_matrix);
908 const unsigned n_dim = this->
dim();
910 for (
unsigned i = 0;
i < n_dim;
i++)
912 u_nodal_nst[
i] = this->u_index_nst(
i);
916 const unsigned n_node = this->
nnode();
919 Shape psif(n_node), testf(n_node);
920 DShape dpsifdx(n_node, n_dim), dtestfdx(n_node, n_dim);
926 int local_eqn = 0, local_unknown = 0;
929 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
935 double J = this->dshape_and_dtest_eulerian_at_knot_nst(
936 ipt, psif, dpsifdx, testf, dtestfdx);
954 dbody_dexternal_element_data,
955 global_eqn_number_of_external_element_data);
958 const unsigned n_external_element_data =
959 global_eqn_number_of_external_element_data.size();
962 for (
unsigned l = 0; l < n_node; l++)
969 for (
unsigned i = 0;
i < n_dim;
i++)
976 for (
unsigned l2 = 0; l2 < n_external_element_data; l2++)
981 global_eqn_number_of_external_element_data[l2]);
982 if (local_unknown >= 0)
985 jacobian(local_eqn, local_unknown) +=
986 dbody_dexternal_element_data(
i, l2) * testf(l) *
W;
1001 template<
class NST_ELEMENT,
class AD_ELEMENT>
1004 const unsigned& ipt,
1010 unsigned interaction = 0;
1013 const double interpolated_t =
1014 dynamic_cast<AD_ELEMENT*
>(external_element_pt(interaction, ipt))
1015 ->interpolated_u_adv_diff(
1016 external_element_local_coord(interaction, ipt));
1023 const unsigned n_dim = this->dim();
1024 for (
unsigned i = 0;
i < n_dim;
i++)
1026 result[
i] = -
gravity[
i] * interpolated_t * ra();
1032 template<
class NST_ELEMENT,
class AD_ELEMENT>
1045 template<
class NST_ELEMENT,
class AD_ELEMENT>
1048 :
public virtual FaceGeometry<FaceGeometry<NST_ELEMENT>>
1069 template<
class AD_ELEMENT,
class NST_ELEMENT>
1104 void output(std::ostream& outfile,
const unsigned& nplot)
1107 const unsigned n_dim = this->
dim();
1117 for (
unsigned iplot = 0; iplot < num_plot_points; iplot++)
1123 for (
unsigned i = 0;
i < n_dim;
i++)
1129 outfile << AD_ELEMENT::interpolated_u_adv_diff(
s) << std::endl;
1131 outfile << std::endl;
1152 void output(FILE* file_pt,
const unsigned& n_plot)
1161 const unsigned& ipt,
1172 #ifdef USE_FD_JACOBIAN_IN_MULTI_DOMAIN_BOUSSINESQ
1200 residuals, jacobian, mass_matrix);
1210 const unsigned u_nodal_adv_diff = this->u_index_adv_diff();
1213 const unsigned n_node = this->
nnode();
1216 const unsigned n_dim = this->
dim();
1220 DShape dpsidx(n_node, n_dim), dtestdx(n_node, n_dim);
1226 int local_eqn = 0, local_unknown = 0;
1229 const double peclet = this->
pe();
1232 for (
unsigned ipt = 0; ipt < n_intpt; ipt++)
1238 double J = this->dshape_and_dtest_eulerian_at_knot_adv_diff(
1239 ipt, psi, dpsidx,
test, dtestdx);
1247 for (
unsigned l = 0; l < n_node; l++)
1250 for (
unsigned j = 0;
j < n_dim;
j++)
1252 interpolated_dudx[
j] +=
1267 for (
unsigned i2 = 0; i2 < n_dim; i2++)
1273 dwind_dexternal_element_data,
1274 global_eqn_number_of_external_element_data);
1277 const unsigned n_external_element_data =
1278 global_eqn_number_of_external_element_data.size();
1281 for (
unsigned l = 0; l < n_node; l++)
1291 for (
unsigned l2 = 0; l2 < n_external_element_data; l2++)
1296 global_eqn_number_of_external_element_data[l2]);
1297 if (local_unknown >= 0)
1300 jacobian(local_eqn, local_unknown) -=
1301 peclet * dwind_dexternal_element_data[l2] *
1302 interpolated_dudx[i2] *
test(l) *
W;
1319 template<
class AD_ELEMENT,
class NST_ELEMENT>
1327 unsigned interaction = 0;
1331 dynamic_cast<NST_ELEMENT*
>(external_element_pt(interaction, ipt));
1334 source_el_pt->interpolated_u_nst(
1335 external_element_local_coord(interaction, ipt), wind);
1342 template<
class AD_ELEMENT,
class NST_ELEMENT>
1345 const unsigned& ipt,
1351 unsigned interaction = 0;
1355 dynamic_cast<NST_ELEMENT*
>(external_element_pt(interaction, ipt));
1360 source_el_pt->dinterpolated_u_nst_ddata(
1361 external_element_local_coord(interaction, ipt),
1375 template<
class NST_ELEMENT,
class AD_ELEMENT>
1378 const unsigned& ipt,
1387 unsigned interaction = 0;
1394 dynamic_cast<AD_ELEMENT*
>(external_element_pt(interaction, ipt));
1396 if (source_el_pt == 0)
1398 throw OomphLibError(
"External element could not be cast to AD_ELEMENT\n",
1405 source_el_pt->dinterpolated_u_adv_diff_ddata(
1406 external_element_local_coord(interaction, ipt),
1411 unsigned n_external_element_data = du_adv_diff_ddata.size();
1414 const unsigned n_dim = this->dim();
1415 result.
resize(n_dim, n_external_element_data);
1418 for (
unsigned i = 0;
i < n_dim;
i++)
1421 for (
unsigned n = 0;
n < n_external_element_data;
n++)
1423 result(
i,
n) = -
gravity[
i] * du_adv_diff_ddata[
n] * ra();
1433 template<
class NST_ELEMENT,
class AD_ELEMENT>
1436 const unsigned& ipt,
1445 unsigned interaction = 0;
1452 dynamic_cast<AD_ELEMENT*
>(external_element_pt(interaction, ipt));
1454 if (source_el_pt == 0)
1456 throw OomphLibError(
"External element could not be cast to AD_ELEMENT\n",
1463 source_el_pt->dinterpolated_u_adv_diff_ddata(
1464 external_element_local_coord(interaction, ipt),
1469 unsigned n_external_element_data = du_adv_diff_ddata.size();
1472 const unsigned n_dim = this->dim();
1473 result.
resize(n_dim, n_external_element_data);
1476 for (
unsigned i = 0;
i < n_dim;
i++)
1479 for (
unsigned n = 0;
n < n_external_element_data;
n++)
1481 result(
i,
n) = -
gravity[
i] * du_adv_diff_ddata[
n] * ra();
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
int i
Definition: BiCGSTAB_step_by_step.cpp:9
const unsigned n
Definition: CG3DPackingUnitTest.cpp:11
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
Definition: multi_domain_boussinesq_elements.h:1073
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: multi_domain_boussinesq_elements.h:1191
AdvectionDiffusionBoussinesqElement()
Constructor: call the underlying constructors.
Definition: multi_domain_boussinesq_elements.h:1076
void get_wind_adv_diff(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: multi_domain_boussinesq_elements.h:1321
void get_dwind_adv_diff_dexternal_element_data(const unsigned &ipt, const unsigned &i, Vector< double > &result, Vector< unsigned > &global_eqn_number)
Definition: multi_domain_boussinesq_elements.h:1344
void fill_in_off_diagonal_block_analytic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:1206
void output(std::ostream &outfile)
Overload the standard output function with the broken default.
Definition: multi_domain_boussinesq_elements.h:1140
void output(FILE *file_pt)
C-style output function: Broken default.
Definition: multi_domain_boussinesq_elements.h:1146
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: Broken default.
Definition: multi_domain_boussinesq_elements.h:1152
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:1169
void output(std::ostream &outfile, const unsigned &nplot)
Definition: multi_domain_boussinesq_elements.h:1104
unsigned nvalue() const
Return number of values stored in data object (incl pinned ones).
Definition: nodes.h:483
void resize(const unsigned long &n)
Definition: matrices.h:498
Definition: element_with_external_element.h:56
Vector< double > & external_element_local_coord(const unsigned &interaction_index, const unsigned &ipt)
Definition: element_with_external_element.h:136
void set_ninteraction(const unsigned &n_interaction)
Definition: element_with_external_element.h:178
bool external_geometric_data_is_included() const
Definition: element_with_external_element.h:301
FiniteElement *& external_element_pt(const unsigned &interaction_index, const unsigned &ipt)
Definition: element_with_external_element.h:107
void fill_in_jacobian_from_external_interaction_by_fd(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: element_with_external_element.h:345
void ignore_external_geometric_data()
Definition: element_with_external_element.h:271
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: element_with_external_element.h:427
FaceGeometry()
Definition: multi_domain_boussinesq_elements.h:1053
FaceGeometry()
Definition: multi_domain_boussinesq_elements.h:1039
Definition: elements.h:4998
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 void output(std::ostream &outfile)
Definition: elements.h:3050
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
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
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
Definition: elements.h:1963
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
double raw_nodal_value(const unsigned &n, const unsigned &i) const
Definition: elements.h:2576
virtual void write_tecplot_zone_footer(std::ostream &outfile, const unsigned &nplot) const
Definition: elements.h:3174
unsigned long eqn_number(const unsigned &ieqn_local) const
Definition: elements.h:704
int local_eqn_number(const unsigned long &ieqn_global) const
Definition: elements.h:726
virtual void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: elements.cc:1322
double const & master_weight(const unsigned &i) const
Return weight for dofs on i-th master node.
Definition: nodes.h:808
Node *const & master_node_pt(const unsigned &i) const
Return a pointer to the i-th master node.
Definition: nodes.h:791
unsigned nmaster() const
Return the number of master nodes.
Definition: nodes.h:785
virtual unsigned nweight() const =0
Return the number of integration points of the scheme.
virtual double weight(const unsigned &i) const =0
Return weight of i-th integration point.
Definition: multi_domain_boussinesq_elements.h:818
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:867
double * Ra_pt
Pointer to a private data member, the Rayleigh number.
Definition: multi_domain_boussinesq_elements.h:821
void get_body_force_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &result)
Definition: multi_domain_boussinesq_elements.h:1003
const double & ra() const
Access function for the Rayleigh number (const version)
Definition: multi_domain_boussinesq_elements.h:837
void fill_in_off_diagonal_block_analytic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:903
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: multi_domain_boussinesq_elements.h:889
void get_dbody_force_nst_dexternal_element_data(const unsigned &ipt, DenseMatrix< double > &result, Vector< unsigned > &global_eqn_number)
Definition: multi_domain_boussinesq_elements.h:1377
NavierStokesBoussinesqElement()
Definition: multi_domain_boussinesq_elements.h:827
double *& ra_pt()
Access function for the pointer to the Rayleigh number.
Definition: multi_domain_boussinesq_elements.h:843
HangInfo *const & hanging_pt() const
Definition: nodes.h:1228
bool is_hanging() const
Test whether the node is geometrically hanging.
Definition: nodes.h:1285
Definition: oomph_definitions.h:222
Definition: multi_domain_boussinesq_elements.h:378
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Classify dofs for use in block preconditioner.
Definition: multi_domain_boussinesq_elements.h:702
void identify_all_field_data_for_external_interaction(Vector< std::set< FiniteElement * >> const &external_elements_pt, std::set< std::pair< Data *, unsigned >> &paired_interaction_data)
Definition: multi_domain_boussinesq_elements.h:764
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: multi_domain_boussinesq_elements.h:507
RefineableAdvectionDiffusionBoussinesqElement()
Constructor: call the underlying constructors.
Definition: multi_domain_boussinesq_elements.h:381
void get_dwind_adv_diff_dexternal_element_data(const unsigned &ipt, const unsigned &i, Vector< double > &result, Vector< unsigned > &global_eqn_number)
Definition: multi_domain_boussinesq_elements.h:522
void output(FILE *file_pt, const unsigned &n_plot)
C-style output function: Broken default.
Definition: multi_domain_boussinesq_elements.h:446
void get_wind_adv_diff(const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &wind) const
Definition: multi_domain_boussinesq_elements.h:456
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Compute the element's residual vector and the Jacobian matrix.
Definition: multi_domain_boussinesq_elements.h:476
void output(std::ostream &outfile, const unsigned &nplot)
Definition: multi_domain_boussinesq_elements.h:400
void fill_in_off_diagonal_block_analytic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:548
void output(FILE *file_pt)
C-style output function: Broken default.
Definition: multi_domain_boussinesq_elements.h:440
unsigned ndof_types() const
Specify number of dof types for use in block preconditioner.
Definition: multi_domain_boussinesq_elements.h:744
void output(std::ostream &outfile)
Overload the standard output function with the broken default.
Definition: multi_domain_boussinesq_elements.h:434
Definition: multi_domain_boussinesq_elements.h:66
void fill_in_contribution_to_jacobian_and_mass_matrix(Vector< double > &residuals, DenseMatrix< double > &jacobian, DenseMatrix< double > &mass_matrix)
Definition: multi_domain_boussinesq_elements.h:179
void get_dbody_force_nst_dexternal_element_data(const unsigned &ipt, DenseMatrix< double > &result, Vector< unsigned > &global_eqn_number)
Definition: multi_domain_boussinesq_elements.h:1435
double * Ra_pt
Pointer to a private data member, the Rayleigh number.
Definition: multi_domain_boussinesq_elements.h:360
void get_dof_numbers_for_unknowns(std::list< std::pair< unsigned long, unsigned >> &dof_lookup_list) const
Classify dof numbers as in underlying element.
Definition: multi_domain_boussinesq_elements.h:345
double *& ra_pt()
Access function for the pointer to the Rayleigh number.
Definition: multi_domain_boussinesq_elements.h:88
void get_body_force_nst(const double &time, const unsigned &ipt, const Vector< double > &s, const Vector< double > &x, Vector< double > &body_force)
Definition: multi_domain_boussinesq_elements.h:123
void further_build()
Definition: multi_domain_boussinesq_elements.h:97
unsigned ndof_types() const
Get number of dof types from underlying element.
Definition: multi_domain_boussinesq_elements.h:353
void fill_in_off_diagonal_block_analytic(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: multi_domain_boussinesq_elements.h:202
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Compute the element's residual vector and the Jacobian matrix.
Definition: multi_domain_boussinesq_elements.h:156
const double & ra() const
Access function for the Rayleigh number (const version)
Definition: multi_domain_boussinesq_elements.h:82
RefineableNavierStokesBoussinesqElement()
Definition: multi_domain_boussinesq_elements.h:71
RealScalar s
Definition: level1_cplx_impl.h:130
int * m
Definition: level2_cplx_impl.h:294
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 body_force(const double &time, const Vector< double > &x, Vector< double > &result)
Definition: axisym_linear_elasticity/cylinder/cylinder.cc:96
void gravity(const double &t, const Vector< double > &xi, Vector< double > &b)
Definition: ConstraintElementsUnitTest.cpp:20
val
Definition: calibrate.py:119
Definition: MortaringCantileverCompareToNonMortaring.cpp:176
double Default_Physical_Constant_Value
Default value for physical constants.
Definition: multi_domain_boussinesq_elements.h:48
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
void fill_in_contribution_to_jacobian(Vector< double > &residuals, DenseMatrix< double > &jacobian)
Definition: gen_axisym_advection_diffusion_elements.h:536
const double & pe() const
Peclet number.
Definition: gen_axisym_advection_diffusion_elements.h:284
list x
Definition: plotDoE.py:28
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
#define OOMPH_CURRENT_FUNCTION
Definition: oomph_definitions.h:86
void set(Container &c, Position position, const Value &value)
Definition: stdlist_overload.cpp:36
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2