from fenicstools import DofMapPlotter as FEniCSToolsDofMapPlotter
except ImportError:
    has_fenicstools = False
else:
    has_fenicstools = True
from rbnics.backends.dolfin.wrapping import (convert_functionspace_to_submesh, convert_meshfunctions_to_submesh,
                                             create_submesh, map_functionspaces_between_mesh_and_submesh)
from rbnics.backends.dolfin.wrapping.create_submesh import logger as create_submesh_logger
from rbnics.utils.test import enable_logging

# Data directory
data_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "data", "test_create_submesh")

# Logger
test_logger = getLogger("tests/unit/test_create_submesh.py")
enable_create_submesh_logging = enable_logging({create_submesh_logger: DEBUG, test_logger: DEBUG})


# Mesh
@module_fixture
def mesh():
    mesh = UnitSquareMesh(3, 3)
    assert MPI.size(mesh.mpi_comm()) in (1, 2, 3, 4)
    # 1 processor        -> test serial case
    # 2 and 3 processors -> test case where submesh in contained only on one processor
    # 4 processors       -> test case where submesh is shared by two processors,
    #                       resulting in shared facets and vertices
    return mesh


# Mesh subdomains
Beispiel #2
0
from dolfin import (assemble, dx, Expression, FiniteElement, FunctionSpace, inner, MixedElement, Point, project,
                    split, TestFunction, TrialFunction, UnitIntervalMesh, UnitSquareMesh, Vector, VectorElement)
try:
    from mshr import generate_mesh, Rectangle
except ImportError:
    has_mshr = False
else:
    has_mshr = True
from rbnics.backends.dolfin import ReducedMesh
from rbnics.backends.dolfin.wrapping import (
    evaluate_and_vectorize_sparse_matrix_at_dofs, evaluate_sparse_function_at_dofs, evaluate_sparse_vector_at_dofs)
from rbnics.utils.test import enable_logging

# Logger
test_logger = getLogger("tests/unit/test_reduced_mesh.py")
enable_reduced_mesh_logging = enable_logging({test_logger: DEBUG})


# Meshes
def structured_mesh_1d():
    return UnitIntervalMesh(24)


def structured_mesh_2d():
    return UnitSquareMesh(3, 3)


if has_mshr:
    def unstructured_mesh_2d():
        domain = Rectangle(Point(0., 0.), Point(1., 1.))
        return generate_mesh(domain, 5)