From 9fda87d3cae462b597142b30fedc01b08d102e9e Mon Sep 17 00:00:00 2001 From: Olivier Ali <olivier.ali@inria.fr> Date: Mon, 16 Jan 2023 11:53:19 +0100 Subject: [PATCH] Fixed the _details methods for AbstractDomain and BVP, get the proper number of elements and dofs. --- src/bvpy/bvp.py | 17 +++++++++++++---- src/bvpy/domains/abstract.py | 2 +- src/bvpy/domains/geometry.py | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/bvpy/bvp.py b/src/bvpy/bvp.py index b7e79e1..915f2ad 100644 --- a/src/bvpy/bvp.py +++ b/src/bvpy/bvp.py @@ -24,7 +24,10 @@ from functools import reduce import operator +# OA: Order the imports from the most generic to the most local. +import ufl from ufl.classes import Zero +from dolfinx import fem from typing import Union @@ -43,8 +46,7 @@ from bvpy.solvers.linear import LinearSolver from bvpy.solvers.nonlinear import NonLinearSolver -import ufl -from dolfinx import fem + class BVP(object): @@ -192,7 +194,14 @@ class BVP(object): description += f'\t- {info}' + '\n' description += '\nSystem to solve \n---------------\n' - description += f" * Number of DOFs: {self.functionSpace.dim()}" + + topo_dim = self.domain.mesh.topology.dim + all_cells = self.domain.mesh.topology.original_cell_index + dof_nbr = fem.locate_dofs_topological(self.functionSpace, + entity_dim=topo_dim, + entities=all_cells).shape[0] + + description += f" * Number of DOFs: {dof_nbr}" return description @@ -215,7 +224,7 @@ class BVP(object): if self.domain.mesh is None: self.domain.discretize() - def set_vform(self, vform: AbstractVform, constrain=None): + def set_vform(self, vform:AbstractVform, constrain=None): """Instanciates the function space and the trial and test functions. Parameters diff --git a/src/bvpy/domains/abstract.py b/src/bvpy/domains/abstract.py index cb54638..32917b9 100644 --- a/src/bvpy/domains/abstract.py +++ b/src/bvpy/domains/abstract.py @@ -254,7 +254,7 @@ class AbstractDomain(ABC): ------- * Algorithm: {self._algorithm} * Cell type: {self._cell_type} - * Number: {self.mesh.ufl_cell().num_facets()} + * Number of elements: {self.mesh.topology.original_cell_index.shape[0]} * Resolution (i.e. prescribed element size): {self._cell_size:.2e} * Actual size (min, max): ({cell_min_diameter:.2e},\ {cell_max_diameter:.2e}) diff --git a/src/bvpy/domains/geometry.py b/src/bvpy/domains/geometry.py index 6150e52..815f3bf 100644 --- a/src/bvpy/domains/geometry.py +++ b/src/bvpy/domains/geometry.py @@ -167,7 +167,7 @@ def normal(domain, scale=1, interior=None, degree=1, name='normal'): # u.rename(name, 'label') u = ufl.FacetNormal(mesh) - u.name = 'label' + # u.name = 'label' return u -- GitLab