# facets). Mesh and mesh functions can be read from file in the # following way:: import matplotlib.pyplot as plt import numpy as np import dolfin from dolfin import (MPI, DirichletBC, Function, FunctionSpace, TestFunctions, TrialFunctions, interpolate, solve) from dolfin.io import XDMFFile from dolfin.plotting import plot from ufl import FiniteElement, VectorElement, div, dx, grad, inner # Load mesh and subdomains xdmf = XDMFFile(MPI.comm_world, "../dolfin_fine.xdmf") mesh = xdmf.read_mesh(dolfin.cpp.mesh.GhostMode.none) sub_domains = xdmf.read_mf_size_t(mesh) cmap = dolfin.fem.create_coordinate_map(mesh.ufl_domain()) mesh.geometry.coord_mapping = cmap # Next, we define a :py:class:`FunctionSpace # <dolfin.functions.functionspace.FunctionSpace>` built on a mixed # finite element ``TH`` which consists of continuous # piecewise quadratics and continuous piecewise # linears:: # Define function spaces P2 = VectorElement("Lagrange", mesh.ufl_cell(), 2) P1 = FiniteElement("Lagrange", mesh.ufl_cell(), 1)
# following way:: import matplotlib.pyplot as plt import numpy as np import dolfin from dolfin import (MPI, DirichletBC, Expression, Function, FunctionSpace, TestFunctions, TrialFunctions, function, interpolate, solve) from dolfin.io import XDMFFile from dolfin.plotting import plot from ufl import FiniteElement, VectorElement, div, dx, grad, inner # Load mesh and subdomains xdmf = XDMFFile(MPI.comm_world, "../dolfin_fine.xdmf") mesh = xdmf.read_mesh(MPI.comm_world, dolfin.cpp.mesh.GhostMode.none) sub_domains = xdmf.read_mf_size_t(mesh) cmap = dolfin.fem.create_coordinate_map(mesh.ufl_domain()) mesh.geometry.coord_mapping = cmap # Next, we define a :py:class:`FunctionSpace # <dolfin.functions.functionspace.FunctionSpace>` built on a mixed # finite element ``TH`` which consists of continuous # piecewise quadratics and continuous piecewise # linears:: # Define function spaces P2 = VectorElement("Lagrange", mesh.ufl_cell(), 2) P1 = FiniteElement("Lagrange", mesh.ufl_cell(), 1)
# SPDX-License-Identifier: LGPL-3.0-or-later from dolfin import * from dolfin import cpp from dolfin.io import XDMFFile import matplotlib.pyplot as plt def boundary_value(n): if n < 10: return float(n)/10.0 else: return 1.0 # Load mesh and subdomains xdmf_mesh = XDMFFile(MPI.comm_world, "dolfin_fine.xdmf") mesh = xdmf_mesh.read_mesh(MPI.comm_world, cpp.mesh.GhostMode.none) sub_domains = xdmf_mesh.read_mf_size_t(mesh) h = CellDiameter(mesh) # Create FunctionSpaces Q = FunctionSpace(mesh, "CG", 1) V = VectorFunctionSpace(mesh, "CG", 2) # Create velocity Function from file xdmf_velocity = XDMFFile(MPI.comm_world, "dolfin_fine_velocity.xdmf") velocity = xdmf_velocity.read_checkpoint(V, "velocity") # Initialise source function and previous solution function f = Constant(0.0) u0 = Function(Q)