from fenics import * from mshr import * import numpy as np finalt = 5 #Final time steps = 5000 #number of steps dt = finalt/steps #time steps # model parameters mu = 0.001 #dynamic viscosity rho = 1 #density #creating mesh channel = Rectangle(Point(0,0), Point(2.2, 0.41)) cylinder = Circle(Point(0.2,0.2), 0.05) domain = channel - cylinder mesh = generate_mesh(domain,64) #Defining spaces V = VectorFunctionSpace(mesh,'P', 2) Q = FunctionSpace(mesh, 'P', 1) #defining boundaries: inflow = 'near(x[0], 0)' outflow = 'near(x[0], 2.2)' walls = 'near(x[1], 0) || near(x[1], 0.41)' cylinder = 'on_boundary && x[0]>0.1 && x[0]<0.3 &&x[1]>0.1 && x[1]<0.3' #defining inflow profile inflowProfile('4.0*1.5*x[1]*(0.41-x[1])/pow(0.41,2)', '0') #defining boundary conditions: bcuInflow = DirichletBC(V,Expression(inflowProfile, degree=2), inflow) bcuWalls = DirichletBC(V, Constant((0, 0)), walls) bcuCylinder = DirichletBC(V, Constant((0,0)), cylinder) bcpOutflow = DirichletBC(Q, Constant(0), outflow) bcu = [bcuInflow, bcuWalls, bcuCylinder] bcp = [bcpOutflow]