27 #ifndef OOMPH_REFINEABLE_POLAR_STREAMFUNCTION
28 #define OOMPH_REFINEABLE_POLAR_STREAMFUNCTION
85 unsigned n_node =
nnode();
101 unsigned u_nodal_index[2];
106 for(
unsigned l=0;l<n_node;l++)
108 values[0] += this->
nodal_value(l,s_nodal_index)*psi[l];
109 values[1] += this->
nodal_value(l,u_nodal_index[0])*psi[l];
110 values[2] += this->
nodal_value(l,u_nodal_index[1])*psi[l];
125 "Time-dependent version of get_interpolated_values() ";
126 error_message +=
"not implemented for this element \n";
129 "RefineablePolarStreamfunctionEquations::get_interpolated_values()",
230 public virtual FaceGeometry<PolarStreamfunctionElement >
252 const unsigned n_node =
nnode();
259 DShape dpsidx(n_node,2), dtestdx(n_node,2);
265 unsigned u_nodal_index[2];
272 int local_eqn=0, local_unknown=0;
275 HangInfo *hang_info_pt=0, *hang_info2_pt=0;
278 for(
unsigned ipt=0;ipt<n_intpt;ipt++)
292 double interpolated_s=0.0;
300 for(
unsigned l=0;l<n_node;l++)
304 interpolated_s += s_value*psi(l);
306 for(
unsigned i=0;
i<2;
i++)
309 interpolated_dsdx[
i] += s_value*dpsidx(l,
i);
311 interpolated_u[
i] += u_value*psi(l);
313 for(
unsigned j=0;
j<2;
j++)
324 for(
unsigned l=0;l<n_node;l++)
328 unsigned n_master=1;
double hang_weight=1.0;
336 n_master = hang_info_pt->
nmaster();
345 for(
unsigned m=0;
m<n_master;
m++)
370 residuals[local_eqn] += interpolated_dsdx[0]*dtestdx(l,0)*
interpolated_x[0]*
Alpha*
W*hang_weight;
384 unsigned n_master2=1;
double hang_weight2=1.0;
386 for(
unsigned l2=0;l2<n_node;l2++)
394 n_master2 = hang_info2_pt->nmaster();
403 for(
unsigned m2=0;
m2<n_master2;
m2++)
414 hang_weight2 = hang_info2_pt->master_weight(
m2);
426 if(local_unknown >= 0)
429 jacobian(local_eqn,local_unknown)
431 jacobian(local_eqn,local_unknown)
int i
Definition: BiCGSTAB_step_by_step.cpp:9
JacobiRotation< float > J
Definition: Jacobi_makeJacobi.cpp:3
RowVector3d w
Definition: Matrix_resize_int.cpp:3
Definition: error_estimator.h:79
FaceGeometry()
Definition: refineable_streamfunction_elements.h:233
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 unsigned nvertex_node() const
Definition: elements.h:2491
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 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 Node * vertex_node_pt(const unsigned &j) const
Definition: elements.h:2500
double nodal_position(const unsigned &n, const unsigned &i) const
Definition: elements.h:2317
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.
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: streamfunction_elements.h:298
A class for solving my poisson like streamfunction problem.
Definition: streamfunction_elements.h:37
const double & alpha() const
Alpha.
Definition: streamfunction_elements.h:46
double interpolated_dudx(const Vector< double > &s, const unsigned &i, const unsigned &j) const
Definition: streamfunction_elements.h:198
virtual unsigned u_index_streamfunction() const
Return the indicies at which the unknown values are stored.
Definition: streamfunction_elements.h:62
double * Alpha_pt
Pointer to the angle alpha.
Definition: streamfunction_elements.h:41
virtual double dshape_and_dtest_eulerian_at_knot_poisson(const unsigned &ipt, Shape &psi, DShape &dpsidx, Shape &test, DShape &dtestdx) const =0
void get_flux(const Vector< double > &s, Vector< double > &flux) const
Definition: streamfunction_elements.h:91
virtual unsigned u_index_velocity(const unsigned &i) const
Return the indicies at which the (known) velocities are stored.
Definition: streamfunction_elements.h:65
double *& alpha_pt()
Pointer to Alpha.
Definition: streamfunction_elements.h:49
Definition: refineable_elements.h:97
virtual RefineableElement * father_element_pt() const
Return a pointer to the father element.
Definition: refineable_elements.h:539
int local_hang_eqn(Node *const &node_pt, const unsigned &i)
Definition: refineable_elements.h:278
Definition: refineable_streamfunction_elements.h:176
void rebuild_from_sons(Mesh *&mesh_pt)
Rebuild from sons: empty.
Definition: refineable_streamfunction_elements.h:206
void further_setup_hanging_nodes()
Definition: refineable_streamfunction_elements.h:214
Node * vertex_node_pt(const unsigned &j) const
Pointer to the j-th vertex node in the element.
Definition: refineable_streamfunction_elements.h:202
RefineablePolarStreamfunctionElement()
Constructor, simply call the other constructors.
Definition: refineable_streamfunction_elements.h:180
unsigned nrecovery_order()
Definition: refineable_streamfunction_elements.h:210
unsigned nvertex_node() const
Number of vertex nodes in the element.
Definition: refineable_streamfunction_elements.h:198
RefineablePolarStreamfunctionElement(const RefineablePolarStreamfunctionElement &dummy)
Broken copy constructor.
Definition: refineable_streamfunction_elements.h:188
unsigned ncont_interpolated_values() const
Number of continuously interpolated values: 3.
Definition: refineable_streamfunction_elements.h:195
Definition: refineable_streamfunction_elements.h:52
void further_build()
Further build: Copy source function pointer from father element.
Definition: refineable_streamfunction_elements.h:142
RefineablePolarStreamfunctionEquations()
Constructor, simply call other constructors.
Definition: refineable_streamfunction_elements.h:56
void fill_in_generic_residual_contribution(Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag)
Definition: refineable_streamfunction_elements.h:247
unsigned num_Z2_flux_terms()
Number of 'flux' terms for Z2 error estimation.
Definition: refineable_streamfunction_elements.h:68
void get_Z2_flux(const Vector< double > &s, Vector< double > &flux)
Get 'flux' for Z2 error recovery: Standard flux.from Streamfunction equations.
Definition: refineable_streamfunction_elements.h:71
void get_interpolated_values(const unsigned &t, const Vector< double > &s, Vector< double > &values)
Definition: refineable_streamfunction_elements.h:118
RefineablePolarStreamfunctionEquations(const RefineablePolarStreamfunctionEquations &dummy)
Broken copy constructor.
Definition: refineable_streamfunction_elements.h:62
void get_interpolated_values(const Vector< double > &s, Vector< double > &values)
Definition: refineable_streamfunction_elements.h:79
Definition: Qelements.h:2259
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 flux(const double &time, const Vector< double > &x, double &flux)
Get flux applied along boundary x=0.
Definition: pretend_melt.cc:59
double Alpha
Parameter for steepness of step.
Definition: two_d_adv_diff_adapt.cc:53
void broken_copy(const std::string &class_name)
Issue error message and terminate execution.
Definition: oomph_utilities.cc:212
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
@ W
Definition: quadtree.h:63
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).
Definition: AnisotropicHookean.h:10
t
Definition: plotPSD.py:36
Definition: indexed_view.cpp:20
#define OOMPH_EXCEPTION_LOCATION
Definition: oomph_definitions.h:61
std::ptrdiff_t j
Definition: tut_arithmetic_redux_minmax.cpp:2