Getting Started
Installation
Install from source:
git clone https://github.com/mpds-io/aiida-reoptimize.git
cd aiida-reoptimize
pip install .
Documentation dependencies can be installed with:
pip install ".[docs]"
Quick Start
The package offers two workflow paradigms:
Dynamic workflows are assembled at runtime via OptimizerBuilder.
They can only be used with AiiDA run() (not submit()), making them suitable for
interactive or short-running tasks.
Static workflows are pre-defined, importable workchains registered as AiiDA entry points.
They work with both run() and submit() and are suitable for daemon-managed production use.
Dynamic workflow example
from aiida.engine import run
from aiida_reoptimize.base import OptimizerBuilder, BasicExtractor
from aiida_reoptimize.optimizers.convex.GD import AdamOptimizer
from aiida_reoptimize.problems.problems import Sphere
extractor = BasicExtractor(lambda outputs: outputs.value.value)
builder = OptimizerBuilder.from_problem(
optimizer_workchain=AdamOptimizer,
problem_workchain=Sphere,
extractor=extractor,
)
optimizer = builder.get_optimizer()
result = run(optimizer, parameters=Dict({"initial_parameters": [1.0, 1.0]}))
Static workflow example
from aiida.engine import submit
from aiida.orm import Dict, Int, Str, StructureData
from aiida_reoptimize.workflows import AdamFleurSCFOptimizer
result = submit(
AdamFleurSCFOptimizer,
parameters=Dict({...}),
structure=StructureData(...),
itmax=Int(50),
)