Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
diffusion_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 tensor3 grad (const point& x) const {
55 tensor s = operator()(x);
56 point vec = x - xt;
57 tensor3 A;
58 for (size_t i = 0; i < 2; i++)
59 for (size_t j = 0; j < 2; j++)
60 for (size_t k = 0; k < 2; k++)
61 A(i,j,k) = s(i,j)*vec[k];
62 A *= (-2/sqr(r0));
63 return A;
64 }
65 tensor laplacian (const point& x) const {
66 tensor s = operator()(x);
67 return (norm2(x-xt)/sqr(r0) - 1)*(4/sqr(r0))*s;
68 }
69 sigma_exact (Float nu1, Float t1 = 0)
70 : nu(nu1), t(t1), r0(0.1), x0(0.25,0), xt(), vt()
71 {
72 xt = point( x0[0]*cos(t) - x0[1]*sin(t),
73 x0[0]*sin(t) + x0[1]*cos(t));
74 vt = point(-x0[0]*sin(t) - x0[1]*cos(t),
75 x0[0]*cos(t) - x0[1]*sin(t));
76 }
79};
80struct chi {
81 tensor operator() (const point& x) const {
82 return - _eps * _s.laplacian(x) - _s.time_derivative(x);
83 }
84 chi (Float eps, Float nu, Float t = 0): _eps(eps), _s(nu, t) {}
87};
89 tensor3 operator() (const point& x) const {
90 return _s.grad(x);
91 }
92 grad_sigma_g (Float nu, Float t = 0): _s(nu, t) {}
94};
see the Float page for the full documentation
see the point page for the full documentation
see the tensor3 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 eps, Float nu, Float t=0)
Definition cavity_dg.h:29
grad_sigma_g(Float nu, Float t=0)
tensor3 operator()(const point &x) const
Definition nu.h:26
tensor laplacian(const point &x) const
tensor operator()(const point &x) const
tensor3 grad(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