Loading...
Searching...
No Matches
p_laplacian1.icc

The p-Laplacian problem by the Newton method – class body.

The p-Laplacian problem by the Newton method – class body

#include "eta.h"
#include "nu.h"
#include "dirichlet.icc"
p_laplacian::p_laplacian (Float p1, const geo& omega, string approx)
: p(p1), Xh(), lh(), m(), pm(), a1(), pa1() {
Xh = space (omega, approx);
Xh.block ("boundary");
trial u (Xh); test v (Xh);
lh = integrate (v);
m = integrate (u*v);
pm = problem (m);
}
field p_laplacian::initial() const {
field uh (Xh, 0);
dirichlet (lh, uh);
return uh;
}
field p_laplacian::residue (const field& uh) const {
trial u (Xh); test v (Xh);
form a = integrate (compose(eta(p), norm2(grad(uh)))*dot(grad(u),grad(v)));
field mrh = a*uh - lh;
mrh.set_b() = 0;
return mrh;
}
void p_laplacian::update_derivative (const field& uh) const {
size_t d = Xh.get_geo().dimension();
trial u (Xh); test v (Xh);
a1 = integrate (dot(compose(nu<eta>(eta(p),d), grad(uh))*grad(u),grad(v)));
pa1 = problem (a1);
}
field p_laplacian::derivative_solve (const field& rh) const {
field delta_uh (Xh,0);
pa1.solve (rh, delta_uh);
return delta_uh;
}
lh
field lh(Float epsilon, Float t, const test &v)
Definition burgers_diffusion_operators.icc:25
Float
see the Float page for the full documentation
field
see the field page for the full documentation
geo
see the geo page for the full documentation
p_laplacian::a1
form a1
Definition p_laplacian.h:42
p_laplacian::Xh
space Xh
Definition p_laplacian.h:38
p_laplacian::derivative_solve
field derivative_solve(const field &mrh) const
Definition p_laplacian1.icc:55
p_laplacian::pa1
problem pa1
Definition p_laplacian.h:43
p_laplacian::p_laplacian
p_laplacian(Float p, const geo &omega, string approx)
Definition p_laplacian1.icc:28
p_laplacian::lh
field lh
Definition p_laplacian.h:39
p_laplacian::p
Float p
Definition p_laplacian.h:37
p_laplacian::initial
field initial() const
Definition p_laplacian1.icc:37
p_laplacian::update_derivative
void update_derivative(const field &uh) const
Definition p_laplacian1.icc:49
p_laplacian::residue
field residue(const field &uh) const
Definition p_laplacian1.icc:42
problem
see the problem page for the full documentation
space
see the space page for the full documentation
test
see the test page for the full documentation
trial
see the test page for the full documentation
u
point u(const point &x)
Definition diffusion_transport_tensor_exact.icc:25
dirichlet.icc
The Poisson problem with homogeneous Dirichlet boundary condition – solver function.
dirichlet
void dirichlet(const field &lh, field &uh)
Definition dirichlet.icc:25
eta.h
The p-Laplacian problem – the eta function.
mkgeo_ball.a
int a
Definition mkgeo_ball.sh:151
rheolef::details::compose
class rheolef::details::field_expr_v2_nonlinear_node_unary compose
rheolef::details::dot
rheolef::details::is_vec dot
rheolef::grad
std::enable_if< details::has_field_rdof_interface< Expr >::value, details::field_expr_v2_nonlinear_terminal_field< typenameExpr::scalar_type, typenameExpr::memory_type, details::differentiate_option::gradient > >::type grad(const Expr &expr)
grad(uh): see the expression page for the full documentation
Definition field_expr_terminal.h:930
rheolef::norm2
T norm2(const vec< T, M > &x)
norm2(x): see the expression page for the full documentation
Definition vec.h:379
rheolef::integrate
std::enable_if< details::is_field_expr_v2_nonlinear_arg< Expr >::value &&!is_undeterminated< Result >::value, Result >::type integrate(const geo_basic< T, M > &omega, const Expr &expr, const integrate_option &iopt, Result dummy=Result())
see the integrate page for the full documentation
Definition integrate.h:211
d
size_t d
Definition neumann-laplace-lambda.cc:28
nu.h
The p-Laplacian problem – the nu function.
p
Definition sphere.icc:25
u
Definition leveque.h:25