Minimal:
struct NewMethod
# settings
end
struct ResultNewMethod
# settings
end
function solve(hamiltonian::Hamiltonian, method::NewMethod)
# calculation
return ResultNewMethod()
end
function expectation(result::ResultNewMetho, o::Operator)
# calculation
end
Optional:
Base.show(io::IO, method::FiniteDifferenceMethod) = print(io, Base.string(method))
Base.show(io::IO, result::FiniteDifferenceMethodResult) = print(io, Base.string(result))
Base.string(method::FiniteDifferenceMethod) = "FiniteDifferenceMethod(" * join(["$(symbol)=$(getproperty(method,symbol))" for symbol in fieldnames(typeof(method))], ", ") * ")"
function Base.string(result::FiniteDifferenceMethodResult)
# ...
end
function verification(result::FiniteDifferenceMethodResult)
# ...
end
Minimal:
Optional: