Rheolef  7.2
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); }
see the Float page for the full documentation
see the field page for the full documentation
see the form page for the full documentation
see the problem page for the full documentation
see the test page for the full documentation
see the test page for the full documentation
rheolef::details::is_vec dot
std::enable_if< details::has_field_rdof_interface< 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
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
rheolef::std enable_if ::type dual const Expr1 expr1, const Expr2 expr2 dual(const Expr1 &expr1, const Expr2 &expr2)
Definition: field_expr.h:229
tensor_basic< T > exp(const tensor_basic< T > &a, size_t d)
Definition: tensor-exp.cc:92
field derivative_trans_mult(const field &mrh) const
Definition: combustion2.icc:52
space Xh
Definition: combustion.h:49
field derivative_solve(const field &mrh) const
Definition: combustion2.icc:47
field unmassify(const field &uh) const
Definition: combustion2.icc:58
problem pa1
Definition: combustion.h:53
float_type space_dot(const field &xh, const field &yh) const
Definition: combustion2.icc:63
float_type dual_space_dot(const field &mrh, const field &msh) const
Definition: combustion2.icc:65
field derivative_versus_parameter(const field &uh) const
Definition: combustion2.icc:43
form derivative(const field &uh) const
Definition: combustion2.icc:31
problem::determinant_type update_derivative(const field &uh) const
Definition: combustion2.icc:36
field residue(const field &uh) const
Definition: combustion2.icc:25
problem pm
Definition: combustion.h:51