⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advectiondiffusion.form

📁 利用C
💻 FORM
字号:
# Copyright (C) 2007 Kristian B. Oelgaard and Garth N. Wells.# Licensed under the GNU LGPL Version 2.1.## First added:  2007-06-29# Last changed: 2008-05-05## The bilinear form a(v, u) and linear form L(v) for# advection-diffusion. Discontinuous formulation with upwinding.#scalar = FiniteElement("Discontinuous Lagrange", "triangle", 2)vector = VectorElement("Lagrange", "triangle", 2)constant = FiniteElement("Discontinuous Lagrange", "triangle", 0)# Test and trial functionsv = TestFunction(scalar)u = TrialFunction(scalar)b   = Function(vector) # Note: b('+') == b('-')f   = Function(scalar)n   = FacetNormal("triangle")h   = MeshSize("triangle")of  = Function(constant)  # This function is a switch that determines if a facet is                            # an outflow facet or not 1.0 or 0.0kappa = Constant("triangle")alpha = Constant("triangle")def upwind(u, b):  return [b[i]('+')*(of('+')*u('+') + of('-')*u('-')) for i in range(len(b))]# Bilinear forma_int = dot( grad(v), mult(kappa, grad(u)) - mult(b,u) )*dxa_fac = kappa('+')*alpha('+')/h('+')*dot(jump(v, n), jump(u, n))*dS \      - kappa('+')*dot(avg(grad(v)), jump(u, n))*dS \      - kappa('+')*dot(jump(v, n), avg(grad(u)))*dSa_gd = kappa*alpha/h*v*u*ds \     - kappa*dot(grad(v), mult(u,n))*ds \     - kappa*dot(mult(v,n), grad(u))*dsa_vel = dot(jump(v, n), upwind(u, b))*dS + dot(mult(v, n), mult(b, of*u))*dsa = a_int + a_fac + a_gd + a_vel# Linear formL = v*f*dx

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -