📄 nsemomentum3d.py
字号:
from ffc import *# Reserved variables for forms(a, L, M) = (None, None, None)# Reserved variable for elementelement = None# Copyright (c) 2005 Johan Hoffman # Licensed under the GNU GPL Version 2## Modified by Anders Logg 2006## First added: 2005# Last changed: 2006-03-28## The momentum equation for the incompressible # Navier-Stokes equations using cG(1)cG(1)## Compile this form with FFC: ffc NSEMomentum2D.form.name = "NSEMomentum3D"scalar = FiniteElement("Lagrange", "tetrahedron", 1)vector = VectorElement("Lagrange", "tetrahedron", 1)constant_scalar = FiniteElement("Discontinuous Lagrange", "tetrahedron", 0)constant_vector = VectorElement("Discontinuous Lagrange", "tetrahedron", 0)v = TestFunction(vector) # test basis functionU = TrialFunction(vector) # trial basis function#uc = Function(vector) # linearized velocityum = Function(constant_vector) # cell mean linearized velocityu0 = Function(vector) # velocity from previous time stepf = Function(vector) # force termp = Function(scalar) # pressuredelta1 = Function(constant_scalar) # stabilization parameterdelta2 = Function(constant_scalar) # stabilization parameterk = Constant("tetrahedron") # time stepnu = Constant("tetrahedron") # viscosity#uc = mean(uc) # cell mean value of linearized velocity#uc = uc # cell mean value of linearized velocityi0 = Index() # index for tensor notationi1 = Index() # index for tensor notationi2 = Index() # index for tensor notation# Galerkin discretization of bilinear form G_a = (dot(v, U) + k*nu*0.5*dot(grad(v), grad(U)) + 0.5*k*v[i0]*um[i1]*U[i0].dx(i1))*dx# Least squares stabilization of bilinear form SD_a = (delta1*k*0.5*um[i1]*v[i0].dx(i1)*um[i2]*U[i0].dx(i2) + delta2*k*0.5*div(v)*div(U))*dx# Galerkin discretization of linear form G_L = (dot(v, u0) + k*dot(v, f) + k*div(v)*p - k*nu*0.5*dot(grad(v), grad(u0)) - 0.5*k*v[i0]*um[i1]*u0[i0].dx(i1))*dx# Least squares stabilization of linear formSD_L = (- delta1*k*0.5*um[i1]*v[i0].dx(i1)*um[i2]*u0[i0].dx(i2) - delta2*k*0.5*div(v)*div(u0))*dx# Bilinear and linear formsa = G_a + SD_aL = G_L + SD_Lcompile([a, L, M, element], "NSEMomentum3D", "tensor", "dolfin", {'quadrature_points=': False, 'blas': False, 'precision=': '15', 'optimize': False})
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -