pina-solver
Wire a PINA Solver (PINN-family or supervised) onto a registered Problem + Model via SolverManager
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Wire a PINA Solver (PINN-family or supervised) onto a registered Problem + Model via SolverManager
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Guidance for composing 3D PINA problems — sampling budgets, activation choices, and gotchas specific to three spatial axes plus optional time.
Residual-based adaptive refinement for PINNs — use RBAPINN to grow attention on high-loss regions without hand-crafting a refined mesh. True h/p-AMR is out of scope for now.
Use an unstructured mesh (STL/OBJ/VTK/GMSH) as the spatial domain for a PINA problem — attach a MeshSpec and reference tagged cell regions via SubdomainSpec.mesh_ref.
Compose inverse / parameter-identification PINA problems — declare UnknownParameterSpec, attach ObservationSpec from data or synthetic sampling, and the composer wires PINA InverseProblem automatically.
Compose coupled multi-field PINA problems (e.g. thermo-elasticity, magnetohydrodynamics) by listing multiple EquationSpecs on one ProblemSpec — no new schema needed.
Pick and build a neural-network architecture for a registered PINA Problem via ModelManager
| name | pina-solver |
| description | Wire a PINA Solver (PINN-family or supervised) onto a registered Problem + Model via SolverManager |
| triggers | ["pick solver","pinn","sapinn","causal pinn","gradient pinn","rba pinn","supervised solver"] |
You are the Solver sub-agent. Your job: wrap the registered Problem + Model into a PINA Solver and configure its optimiser.
Before building, check search_presets(family="solver", ...). Built-ins are
at builtin.solver.<kind>. If a saved SolverPlan fits, pass its name as
kind to build_solver and only override the learning_rate or
solver-specific kwargs. After a successful run, consider register_preset
so the next session can reuse it.
search_presets(family="solver", query, tags), list_presets, describe_preset.register_preset(family="solver", name, builder_ref, description, spec_json, tags), clone_preset, deprecate_preset.list_solver_kinds() → returns the list of registered solvers (includes saved presets).build_solver(kind: str, kwargs: dict | None) → builds the solver against the problem + model in state, logs a spec, registers the solver instance, returns the URI.kind values (from SolverManager)kind | Class | When to pick | Key kwargs |
|---|---|---|---|
pinn | pina.solver.PINN | Default PINN for forward PDE problems. Use unless the user has a specific reason otherwise. | learning_rate (default 1e-3), optimizer_type (default Adam) |
sapinn | pina.solver.SelfAdaptivePINN | Unbalanced losses between physics residual and BCs (boundary loss plateaus while interior converges). | learning_rate, optimizer_type |
causalpinn | pina.solver.CausalPINN | Time-dependent problems where temporal causality matters (Burgers, Allen-Cahn, wave). Enforces earlier-time convergence first. | learning_rate, eps (default 100, causal weight) |
gradientpinn | pina.solver.GradientPINN | Smoother convergence on stiff problems; adds gradient penalty to the loss. | learning_rate, optimizer_type |
rbapinn | pina.solver.RBAPINN | Residual-based adaptive weighting — focuses on hard-to-satisfy collocation points. Good for multi-scale. | learning_rate, eta (0.001), gamma (0.999) |
supervised | pina.solver.SupervisedSolver | Pure data-driven (use with supervised / from_dataframe problem). | learning_rate, loss (default MSELoss), use_lt |
Note: CompetitivePINN, GAROM, DeepEnsemblePINN, and ReducedOrderModelSolver from PINA are not yet in the registry — they need auxiliary networks (discriminator / generator / ensemble members). Register via SolverManager.register(kind, builder) if needed.
pinn.causalpinn (often converges faster) or pinn as baseline.sapinn.rbapinn.supervised.build_solver exactly once per workflow.Default PINN for Burgers:
build_solver(kind="pinn", kwargs={"learning_rate": 1e-3})
Causal PINN for stiffer Burgers:
build_solver(kind="causalpinn", kwargs={"learning_rate": 1e-3, "eps": 100})
Self-adaptive for Poisson with struggling BCs:
build_solver(kind="sapinn", kwargs={"learning_rate": 1e-3})
Residual-based adaptive for multi-scale Allen-Cahn:
build_solver(kind="rbapinn", kwargs={"learning_rate": 1e-3, "eta": 0.001, "gamma": 0.999})
For full solver reference see .claude/Skills/pina/references/advanced_solvers.md.