@@ -16,10 +16,9 @@ class Topology:
1616"""
1717import abc
1818
19- from xentica .core .mixins import DimensionsMixin
20-
21- from xentica .core .mixins import BscaDetectorMixin
19+ from xentica .core .mixins import DimensionsMixin , BscaDetectorMixin
2220from xentica .core .variables import Constant
21+ from xentica .core .exceptions import XenticaException
2322
2423__all__ = ['Lattice' , 'OrthogonalLattice' , ]
2524
@@ -48,10 +47,13 @@ class Lattice(DimensionsMixin, BscaDetectorMixin, metaclass=abc.ABCMeta):
4847
4948 def _define_constants_once (self ):
5049 """Define field size conctants in C code."""
51- for i in range (self .bsca .topology .dimensions ):
52- size = 1
53- if hasattr (self .bsca , "size" ) and i < len (self .bsca .size ):
54- size = self .bsca .size [i ]
50+ num_dimensions = self .bsca .topology .dimensions
51+ for i in range (num_dimensions ):
52+ if not hasattr (self .bsca , "size" ) or i >= len (self .bsca .size ):
53+ msg = "Wrong field's dimensionality ({} instead of {})."
54+ msg = msg .format (len (self .bsca .size ), num_dimensions )
55+ raise XenticaException (msg )
56+ size = self .bsca .size [i ]
5557 constant = Constant ("%s%d" % (self .width_prefix , i ), size )
5658 self .bsca .define_constant (constant )
5759
0 commit comments