@@ -417,24 +417,24 @@ hermiticity(::ParameterizedTightBindingModel{D, S}) where {D, S} = S
417417orbital_positions (ptbm:: ParameterizedTightBindingModel ) = ptbm. tbm. positions
418418Crystalline. CompositeBandRep (ptbm:: ParameterizedTightBindingModel ) = ptbm. tbm. cbr
419419
420- function (ptbm:: ParameterizedTightBindingModel{D} )(
420+ function (ptbm:: ParameterizedTightBindingModel{D, S } )(
421421 k:: ReciprocalPointLike{D} ,
422422 scratch:: Matrix{ComplexF64} = ptbm. scratch,
423- ) where {D}
423+ ) where {D, S }
424424 if length (k) ≠ D
425425 error (" momentum `k` must be a $D -dimensional vector to match the model dimension" )
426426 end
427427 tbm = ptbm. tbm
428428 size (scratch) ≠ (tbm. N, tbm. N) && _throw_scratch_size_mismatch (scratch, tbm. N)
429429
430- H = scratch # grab & reset scratch space for evaluating Hamiltonian matrix
431- fill! (H , 0.0 )
430+ _H = scratch # grab & reset scratch space for evaluating Hamiltonian matrix
431+ fill! (_H , 0.0 )
432432
433433 # evaluate each block of the Hamiltonian terms, multiply by coefficients, & store in `H`
434434 for (tbt, c) in zip (tbm. terms, ptbm. cs)
435- evaluate_tight_binding_term! (tbt, k, c, H ) # modifies `H` in-place
435+ evaluate_tight_binding_term! (tbt, k, c, _H ) # modifies `H` in-place
436436 end
437-
437+ H = S == HERMITIAN ? Hermitian (_H) : _H # return Hermitian wrapper if S == HERMITIAN
438438 return H
439439end
440440
@@ -500,8 +500,7 @@ function solve(
500500 eigen_kws... ,
501501) where {D, S}
502502 length (k) == D || error (" dimension mismatch" )
503- _H = ptbm (k)
504- H = S == HERMITIAN ? Hermitian (_H) : _H
503+ H = ptbm (k)
505504 es, vs = eigen! (H; eigen_kws... )
506505 if bloch_phase === Val (true )
507506 Θₖ = reciprocal_translation_phase (orbital_positions (ptbm), k)
0 commit comments