| |
| |
|
|
|
|
| from __future__ import annotations |
|
|
| from typing import Any |
|
|
| import jax |
|
|
| from hamiltonzero.energy.kernel import ( |
| _vmc_energy_custom_lap_finetune, |
| _vmc_energy_custom_lap_prebuilt, |
| ) |
|
|
|
|
| def vmc_energy_custom_lap_compiled( |
| kernel: Any, |
| tree: Any, |
| energy_frame: Any, |
| q_routed: jax.Array, |
| *, |
| chunk_size: int | None = 512, |
| ) -> tuple[jax.Array, jax.Array, jax.Array, jax.Array]: |
| return _vmc_energy_custom_lap_prebuilt( |
| kernel, |
| tree, |
| energy_frame, |
| q_routed, |
| chunk_size=chunk_size, |
| ) |
|
|
|
|
| def vmc_energy_custom_lap_finetune( |
| model: Any, |
| energy_frame: Any, |
| q_routed: jax.Array, |
| *, |
| chunk_size: int | None = 512, |
| ) -> tuple[jax.Array, jax.Array, jax.Array, jax.Array]: |
| from hamiltonzero.compiled.model import CompiledFinetuneWaveFunction |
|
|
| if not isinstance(model, CompiledFinetuneWaveFunction): |
| raise TypeError("fine-tune energy requires CompiledFinetuneWaveFunction") |
| return _vmc_energy_custom_lap_finetune( |
| model, |
| energy_frame, |
| q_routed, |
| 0.0, |
| chunk_size=chunk_size, |
| ) |
|
|
|
|
| __all__ = [ |
| "vmc_energy_custom_lap_compiled", |
| "vmc_energy_custom_lap_finetune", |
| ] |
|
|