37 template<
unsigned DIM>
46 if (n_position_type != 1)
48 throw OomphLibError(
"TimeHarmonicLinearElasticity is not yet implemented "
49 "for more than one position type",
55 if (this->Elasticity_tensor_pt == 0)
69 for (
unsigned i = 0;
i <
DIM;
i++)
97 for (
unsigned i = 0;
i <
DIM; ++
i)
113 DIM, std::complex<double>(0.0, 0.0));
117 DIM,
DIM, std::complex<double>(0.0, 0.0));
123 for (
unsigned i = 0;
i <
DIM;
i++)
129 const std::complex<double>
u_value =
136 for (
unsigned j = 0;
j <
DIM;
j++)
177 for (
unsigned a = 0; a <
DIM; a++)
207 for (
unsigned b = 0; b <
DIM; b++)
209 for (
unsigned c = 0; c <
DIM; c++)
211 for (
unsigned d = 0; d <
DIM; d++)
215 interpolated_dudx(c, d).real() *
250 for (
unsigned c = 0; c <
DIM; c++)
282 for (
unsigned b = 0; b <
DIM; b++)
284 for (
unsigned d = 0; d <
DIM; d++)
288 this->E(a, b, c, d) *
dpsidx(
l2, d) *
329 for (
unsigned b = 0; b <
DIM; b++)
331 for (
unsigned c = 0; c <
DIM; c++)
333 for (
unsigned d = 0; d <
DIM; d++)
337 interpolated_dudx(c, d).imag() *
372 for (
unsigned c = 0; c <
DIM; c++)
404 for (
unsigned b = 0; b <
DIM; b++)
406 for (
unsigned d = 0; d <
DIM; d++)
410 this->E(a, b, c, d) *
dpsidx(
l2, d) *
A Class for the derivatives of shape functions The class design is essentially the same as Shape,...
Integral *const & integral_pt() const
Return the pointer to the integration scheme (const version)
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 double dshape_eulerian_at_knot(const unsigned &ipt, Shape &psi, DShape &dpsidx) const
Return the geometric shape functions and also first derivatives w.r.t. global coordinates at the ipt-...
unsigned nnodal_position_type() const
Return the number of coordinate types that the element requires to interpolate the geometry between t...
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 nnode() const
Return the number of nodes.
double nodal_position(const unsigned &n, const unsigned &i) const
Return the i-th coordinate at local node n. If the node is hanging, the appropriate interpolation is ...
Node *& node_pt(const unsigned &n)
Return a pointer to the local node n.
Class that contains data for hanging nodes.
virtual double knot(const unsigned &i, const unsigned &j) const =0
Return local coordinate s[j] of i-th integration point.
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.
bool is_hanging() const
Test whether the node is geometrically hanging.
HangInfo *const & hanging_pt() const
Return pointer to hanging node data (this refers to the geometric hanging node status) (const version...
An OomphLibError object which should be thrown when an run-time error is encountered....
void fill_in_generic_contribution_to_residuals_time_harmonic_linear_elasticity(Vector< double > &residuals, DenseMatrix< double > &jacobian, unsigned flag)
Overloaded helper function to take hanging nodes into account.
A Class for shape functions. In simple cases, the shape functions have only one index that can be tho...
TAdvectionDiffusionReactionElement<NREAGENT,DIM,NNODE_1D> elements are isoparametric triangular DIM-d...
TAdvectionDiffusionReactionElement()
Constructor: Call constructors for TElement and AdvectionDiffusionReaction equations.
DRAIG: Change all instances of (SPATIAL_DIM) to (DIM-1).