Rheolef  7.1
an efficient C++ finite element environment
combustion2.icc

The combustion problem: class body for the Newton method

field combustion::residue (const field& uh) const {
test v(Xh);
field mrh = integrate(dot(grad(uh),grad(v)) - lambda*exp(uh)*v);
mrh.set_b() = 0;
return mrh;
}
form combustion::derivative (const field& uh) const {
trial du(Xh); test v(Xh);
return integrate(dot(grad(du),grad(v)) - lambda*exp(uh)*du*v);
}
problem::determinant_type
a1 = derivative (uh);
solver_option sopt;
sopt.compute_determinant = true;
pa1 = problem (a1, sopt);
return pa1.det();
}
test v(Xh);
return - integrate(exp(uh)*v);
}
field delta_uh (Xh,0);
pa1.solve (rh, delta_uh);
return delta_uh;
}
field rh = unmassify(mrh);
field mgh = a1*rh;
mgh["boundary"] = 0;
return mgh;
}
field combustion::unmassify (const field& mrh) const {
field rh (Xh, 0);
pm.solve (mrh, rh);
return rh;
}
Float combustion::space_dot (const field& xh, const field& yh) const {
return m(xh,yh); }
Float combustion::dual_space_dot (const field& mrh, const field& msh) const{
return dual(unmassify(mrh), msh); }
combustion::derivative
form derivative(const field &uh) const
Definition: combustion2.icc:31
form
see the form page for the full documentation
rheolef::details::dual
rheolef::details::is_field_expr_quadrature_arg dual
combustion::derivative_versus_parameter
field derivative_versus_parameter(const field &uh) const
Definition: combustion2.icc:43
field
see the field page for the full documentation
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:202
combustion::derivative_solve
field derivative_solve(const field &mrh) const
Definition: combustion2.icc:47
rheolef::grad
std::enable_if< details::is_field_convertible< Expr >::value,details::field_expr_v2_nonlinear_terminal_field< typename Expr::scalar_type,typename Expr::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:911
combustion::a1
form a1
Definition: combustion.h:52
rheolef::exp
tensor_basic< T > exp(const tensor_basic< T > &a, size_t d)
Definition: tensor-exp.cc:92
combustion::unmassify
field unmassify(const field &uh) const
Definition: combustion2.icc:58
combustion::m
form m
Definition: combustion.h:50
rheolef::details::dot
rheolef::details::is_vec dot
combustion::pm
problem pm
Definition: combustion.h:51
test
see the test page for the full documentation
problem
see the problem page for the full documentation
Float
see the Float page for the full documentation
combustion::residue
field residue(const field &uh) const
Definition: combustion2.icc:25
combustion::pa1
problem pa1
Definition: combustion.h:53
combustion::space_dot
float_type space_dot(const field &xh, const field &yh) const
Definition: combustion2.icc:63
combustion::dual_space_dot
float_type dual_space_dot(const field &mrh, const field &msh) const
Definition: combustion2.icc:65
combustion::update_derivative
problem::determinant_type update_derivative(const field &uh) const
Definition: combustion2.icc:36
trial
see the test page for the full documentation
combustion::derivative_trans_mult
field derivative_trans_mult(const field &mrh) const
Definition: combustion2.icc:52
combustion::Xh
space Xh
Definition: combustion.h:49
lambda
Definition: yield_slip_circle.h:34