an efficient C++ finite element environment
|
|
The stream function for the 3D driven cavity benchmark
string valued = (Xh.size() == 3) ? "vector" : "scalar";
space Ph (Xh.get_geo(),
"P2", valued);
Ph.block("top"); Ph.block("bottom");
size_t d = Xh.get_geo().dimension();
Ph.block("back"); Ph.block("front");
} else {
Ph.block("left"); Ph.block("right");
}
}
field psi_h (
b.get_second_space(), 0);
return psi_h;
}
field streamf(const field &uh, const problem &pa, const form &a, const form &b)
see the field 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
Float phi(const point &nu, Float a, Float b)
see the space page for the full documentation
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
T ddot(const tensor_basic< T > &a, const tensor_basic< T > &b)
ddot(x,y): see the expression page for the full documentation
rheolef::details::is_vec dot
field lh(Float epsilon, Float t, const test &v)
see the test page for the full documentation
see the problem page for the full documentation
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::curl >>::type curl(const Expr &expr)
curl(uh): see the expression page for the full documentation
see the test page for the full documentation
void streamf_cavity_solver(const space &Xh, problem &pa, form &a, form &b)