Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
transport_tensor_exact.icc
Go to the documentation of this file.
1
25point u(const point& x) { return point (-x[1], x[0]); }
26tensor grad_u = {{0,-1},{1,0}};
27
28struct sigma_exact {
29 Float f (const point& x) const {
30 return 0.5*exp( - nu*t - norm2(x-xt)/sqr(r0));
31 }
32 Float df_dt (const point& x) const {
33 return ( - nu + 2*dot(vt,x-xt)/sqr(r0))*f(x);
34 }
35 tensor operator() (const point& x) const {
36 Float c0 = f(x);
37 tensor s;
38 s(0,0) = c0*(1+cos(2*t));
39 s(1,1) = c0*(1-cos(2*t));
40 s(0,1) =
41 s(1,0) = c0*sin(2*t);
42 return s;
43 }
44 tensor time_derivative (const point& x) const {
45 Float c0 = f(x);
46 Float c1 = df_dt(x);
47 tensor s;
48 s(0,0) = c1*(1+cos(2*t)) - 2*c0*sin(2*t);
49 s(1,1) = c1*(1-cos(2*t)) + 2*c0*sin(2*t);
50 s(0,1) =
51 s(1,0) = c1*sin(2*t) + 2*c0*cos(2*t);
52 return s;
53 }
54 sigma_exact (Float nu1, Float t1 = 0)
55 : nu(nu1), t(t1), r0(0.1), x0(0.25,0), xt(), vt()
56 {
57 xt = point( x0[0]*cos(t) - x0[1]*sin(t),
58 x0[0]*sin(t) + x0[1]*cos(t));
59 vt = point(-x0[0]*sin(t) - x0[1]*cos(t),
60 x0[0]*cos(t) - x0[1]*sin(t));
61 }
62 Float nu, t, r0;
63 point x0, xt, vt;
64};
65struct chi {
66 tensor operator() (const point& x) const {
67 return - _s.time_derivative(x);
68 }
69 chi (Float nu, Float t = 0): _s(nu, t) {}
71};
see the Float page for the full documentation
see the point page for the full documentation
see the tensor page for the full documentation
sigma_exact sigma_g
tensor operator()(const point &x) const
chi(Float nu, Float t=0)
Definition cavity_dg.h:29
Definition nu.h:26
tensor operator()(const point &x) const
Float f(const point &x) const
Float df_dt(const point &x) const
tensor time_derivative(const point &x) const
sigma_exact(Float nu1, Float t1=0)
Definition leveque.h:25