Loading...
Searching...
No Matches
streamf_cavity.cc

The stream function for the driven cavity benchmark.

The stream function for the driven cavity benchmark

#include "rheolef.h"
using namespace rheolef;
using namespace std;
#include "cavity.h"
int main (int argc, char** argv) {
environment rheolef (argc, argv);
field uh;
din >> uh;
string approx = "P" + to_string(uh.get_space().degree());
space Ph = cavity::streamf_space (uh.get_geo(), approx);
space Xh = uh.get_space();
size_t d = uh.get_geo().dimension();
trial u (Xh), psi (Ph); test phi (Ph);
form a = (d == 3) ? integrate (ddot(grad(psi),grad(phi)))
: integrate ( dot(grad(psi),grad(phi)));
form b = (d==3) ? integrate (dot(curl(u),phi))
: integrate (curl(u)*phi);
field psi_h = cavity::streamf_field (Ph);
field lh = b*uh;
problem p (a);
p.solve (lh, psi_h);
dout << catchmark("psi") << psi_h;
}
lh
field lh(Float epsilon, Float t, const test &v)
Definition burgers_diffusion_operators.icc:25
phi
Float phi(const point &nu, Float a, Float b)
Definition burgers_flux_godunov.icc:25
cavity.h
The driven cavity benchmark: 2D boundary conditions.
field
see the field page for the full documentation
form
see the form page for the full documentation
problem
see the problem page for the full documentation
rheolef::catchmark
see the catchmark page for the full documentation
Definition catchmark.h:67
rheolef::environment
see the environment page for the full documentation
Definition environment.h:121
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
main
int main()
Definition field2bb.cc:58
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
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::ddot
T ddot(const tensor_basic< T > &a, const tensor_basic< T > &b)
ddot(x,y): see the expression page for the full documentation
Definition tensor.cc:278
rheolef::curl
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::curl > >::type curl(const Expr &expr)
curl(uh): see the expression page for the full documentation
Definition field_expr_terminal.h:1108
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
rheolef::dot
rheolef::std::enable_if< details::is_vec_expr_v2_arg< Expr1 >::value &&details::is_vec_expr_v2_arg< Expr2 >::value, promote< Expr1::float_type, Expr2::float_type >::type > type dot const Expr1 expr1, const Expr2 expr2 dot(const Expr1 &expr1, const Expr2 &expr2)
Definition vec_expr_v2.h:415
std
STL namespace.
d
size_t d
Definition neumann-laplace-lambda.cc:28
rheolef.h
rheolef - reference manual
cavity::streamf_field
static field streamf_field(space Ph)
Definition cavity.h:53
cavity::streamf_space
static space streamf_space(geo omega, string approx)
Definition cavity.h:42
p
Definition sphere.icc:25
phi
Definition phi.h:25
psi
Definition interpolate_RTk_polynom.icc:34
u
Definition leveque.h:25