code: def comp_shear_mod(self):
          
          damping = self.damping
          if COMP_MODULUS_MODEL == 'seed':
              # Frequency independent model (Seed et al., 1970)
              # Correct dissipated energy
              # Incorrect shear modulus: G * \sqrt{1 + 4 \beta^2 }
              comp_factor = 1 + 2j * damping
          elif COMP_MODULUS_MODEL == 'kramer':
              # Simplifed shear modulus (Kramer, 1996)
              # Correct dissipated energy
              # Incorrect shear modulus: G * \sqrt{1 + 2 \beta^2 + \beta^4 }
              comp_factor = 1 - damping ** 2 + 2j * damping
          elif COMP_MODULUS_MODEL == 'dormieux':
              # Dormieux and Canou (1990)
              # Correct dissipated energy
              # Correct shear modulus:
              comp_factor = np.sqrt(1 - 4 * damping ** 2) + 2j * damping
          else:
              raise NotImplementedError
          comp_shear_mod = self.shear_mod * comp_factor
          return comp_shear_mod
docs: Strain-compatible complex shear modulus [kN/m²].