docs: def _init_shape(self):
          """Determine shape of geometry"""
          shape = self._par['geometry']['shape'].lower()
          aspect = self._header['aspect']
          if self.rcmb is not None and self.rcmb >= 0:
              # curvilinear
              self._shape['cyl'] = self.twod_xz and (shape == 'cylindrical' or
                                                     aspect[0] >= np.pi)
              self._shape['sph'] = not self._shape['cyl']
          elif self.rcmb is None:
              self._header['rcmb'] = self._par['geometry']['r_cmb']
              if self.rcmb >= 0:
                  if self.twod_xz and shape == 'cylindrical':
                      self._shape['cyl'] = True
                  elif shape == 'spherical':
                      self._shape['sph'] = True
          self._shape['axi'] = self.cartesian and self.twod_xz and \
              shape == 'axisymmetric'