# 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)
示例#2
0
# 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)
示例#3
0
# 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)