|
occ
|
Settings for crystal structure optimization. More...
#include <crystal_optimizer.h>
Public Attributes | |
| OptimizationMethod | method = OptimizationMethod::MSTMIN |
| Optimization method. | |
| double | gradient_tolerance = 1e-4 |
| Convergence: ||g|| < tol. | |
| double | energy_tolerance = 1e-7 |
| Convergence: |ΔE| < tol. | |
| int | max_iterations = 200 |
| Maximum iterations. | |
| double | neighbor_radius = 20.0 |
| Cutoff for neighbor interactions (Angstrom) | |
| ForceFieldType | force_field = ForceFieldType::BuckinghamDE |
| bool | use_cartesian_engine = true |
| Use Cartesian T-tensor (vs S-functions) | |
| bool | fix_first_translation = true |
| Legacy mode only (use_symmetry=false): fix translation of molecule 0. | |
| bool | fix_first_rotation = false |
| Legacy mode only (use_symmetry=false): fix rotation of molecule 0. | |
| int | lbfgs_memory = 10 |
| L-BFGS history size. | |
| double | max_displacement = 0.05 |
| MSTMIN max component displacement per cycle. | |
| double | mst_step_tolerance = 1e-6 |
| MSTMIN convergence on max |step component|. | |
| double | mst_rotation_scale = 0.2 |
| Internal MSTMIN scale factor for rotational DOF. | |
| double | mst_cell_scale = 0.1 |
| Internal MSTMIN scale factor for cell strain DOF. | |
| int | max_hessian_updates = 1000 |
| MSTMIN updates before inverse-Hessian reset. | |
| int | mst_max_line_search = 40 |
| MSTMIN max line-search trial steps per cycle. | |
| int | mst_max_line_search_restarts = 2 |
| MSTMIN auto-restarts after line-search failure. | |
| int | mst_max_function_evaluations = 4000 |
| MSTMIN global objective-evaluation cap. | |
| int | mst_line_search_report_interval = 100 |
| Report line-search stalls every N trial evals. | |
| double | trust_region_radius = 1.0 |
| Initial trust region radius. | |
| int | hessian_update_interval = 5 |
| Recompute Hessian every N iterations (1=always, >1 uses SR1) | |
| std::string | trajectory_file |
| If non-empty, write XYZ trajectory to this file. | |
| bool | require_exact_hessian = true |
| If true, disable TrustRegion when exact Hessian is unavailable. | |
| bool | use_symmetry = true |
| Use crystallographic symmetry to reduce DOF (Z' molecules instead of Z). | |
| bool | optimize_cell = false |
| Optimize the unit cell with 6 Voigt strain DOF (E1..E6). | |
| bool | constrain_cell_strain_by_lattice = true |
| Constrain cell strain components to match lattice system (default true). | |
| bool | adaptive_neighbor_rebuild = false |
| Adaptive neighbor-list rebuild controls (for explicit neighbor mode). | |
| double | neighbor_rebuild_displacement = 0.25 |
| Angstrom COM threshold. | |
| double | neighbor_rebuild_rotation = 0.15 |
| Radians per-molecule threshold. | |
| double | neighbor_rebuild_cell_strain = 0.01 |
| Max Voigt strain change threshold. | |
| int | neighbor_rebuild_interval = 10 |
| Force rebuild every N objective calls. | |
| bool | freeze_neighbors_during_linesearch = true |
| Keep neighbor list fixed for trial points within line search / trust steps, and only rebuild after accepted iterations (in optimizer callbacks). | |
| int | max_interaction_order = 4 |
| Max multipole interaction order (lA+lB); -1 = no truncation. | |
| bool | use_ewald = true |
| Enable Ewald-split electrostatics. | |
| double | ewald_accuracy = 1e-6 |
| Target accuracy for eta/kmax auto choice. | |
| double | ewald_eta = 0.0 |
| Override Gaussian split (Ang^-1); 0 => auto. | |
| int | ewald_kmax = 0 |
| Override reciprocal cutoff integer extent; 0 => auto. | |
| double | external_pressure_gpa = 0.0 |
Settings for crystal structure optimization.
| bool occ::mults::CrystalOptimizerSettings::adaptive_neighbor_rebuild = false |
Adaptive neighbor-list rebuild controls (for explicit neighbor mode).
Default false for deterministic DMACRYS-style rebuild behavior.
| bool occ::mults::CrystalOptimizerSettings::constrain_cell_strain_by_lattice = true |
Constrain cell strain components to match lattice system (default true).
Example: monoclinic -> only one shear component (single angle) is active.
| double occ::mults::CrystalOptimizerSettings::energy_tolerance = 1e-7 |
Convergence: |ΔE| < tol.
| double occ::mults::CrystalOptimizerSettings::ewald_accuracy = 1e-6 |
Target accuracy for eta/kmax auto choice.
| double occ::mults::CrystalOptimizerSettings::ewald_eta = 0.0 |
Override Gaussian split (Ang^-1); 0 => auto.
| int occ::mults::CrystalOptimizerSettings::ewald_kmax = 0 |
Override reciprocal cutoff integer extent; 0 => auto.
| double occ::mults::CrystalOptimizerSettings::external_pressure_gpa = 0.0 |
| bool occ::mults::CrystalOptimizerSettings::fix_first_rotation = false |
Legacy mode only (use_symmetry=false): fix rotation of molecule 0.
| bool occ::mults::CrystalOptimizerSettings::fix_first_translation = true |
Legacy mode only (use_symmetry=false): fix translation of molecule 0.
| ForceFieldType occ::mults::CrystalOptimizerSettings::force_field = ForceFieldType::BuckinghamDE |
| bool occ::mults::CrystalOptimizerSettings::freeze_neighbors_during_linesearch = true |
Keep neighbor list fixed for trial points within line search / trust steps, and only rebuild after accepted iterations (in optimizer callbacks).
| double occ::mults::CrystalOptimizerSettings::gradient_tolerance = 1e-4 |
Convergence: ||g|| < tol.
| int occ::mults::CrystalOptimizerSettings::hessian_update_interval = 5 |
Recompute Hessian every N iterations (1=always, >1 uses SR1)
| int occ::mults::CrystalOptimizerSettings::lbfgs_memory = 10 |
L-BFGS history size.
| double occ::mults::CrystalOptimizerSettings::max_displacement = 0.05 |
MSTMIN max component displacement per cycle.
| int occ::mults::CrystalOptimizerSettings::max_hessian_updates = 1000 |
MSTMIN updates before inverse-Hessian reset.
| int occ::mults::CrystalOptimizerSettings::max_interaction_order = 4 |
Max multipole interaction order (lA+lB); -1 = no truncation.
| int occ::mults::CrystalOptimizerSettings::max_iterations = 200 |
Maximum iterations.
| OptimizationMethod occ::mults::CrystalOptimizerSettings::method = OptimizationMethod::MSTMIN |
Optimization method.
| double occ::mults::CrystalOptimizerSettings::mst_cell_scale = 0.1 |
Internal MSTMIN scale factor for cell strain DOF.
| int occ::mults::CrystalOptimizerSettings::mst_line_search_report_interval = 100 |
Report line-search stalls every N trial evals.
| int occ::mults::CrystalOptimizerSettings::mst_max_function_evaluations = 4000 |
MSTMIN global objective-evaluation cap.
| int occ::mults::CrystalOptimizerSettings::mst_max_line_search = 40 |
MSTMIN max line-search trial steps per cycle.
| int occ::mults::CrystalOptimizerSettings::mst_max_line_search_restarts = 2 |
MSTMIN auto-restarts after line-search failure.
| double occ::mults::CrystalOptimizerSettings::mst_rotation_scale = 0.2 |
Internal MSTMIN scale factor for rotational DOF.
| double occ::mults::CrystalOptimizerSettings::mst_step_tolerance = 1e-6 |
MSTMIN convergence on max |step component|.
| double occ::mults::CrystalOptimizerSettings::neighbor_radius = 20.0 |
Cutoff for neighbor interactions (Angstrom)
| double occ::mults::CrystalOptimizerSettings::neighbor_rebuild_cell_strain = 0.01 |
Max Voigt strain change threshold.
| double occ::mults::CrystalOptimizerSettings::neighbor_rebuild_displacement = 0.25 |
Angstrom COM threshold.
| int occ::mults::CrystalOptimizerSettings::neighbor_rebuild_interval = 10 |
Force rebuild every N objective calls.
| double occ::mults::CrystalOptimizerSettings::neighbor_rebuild_rotation = 0.15 |
Radians per-molecule threshold.
| bool occ::mults::CrystalOptimizerSettings::optimize_cell = false |
Optimize the unit cell with 6 Voigt strain DOF (E1..E6).
| bool occ::mults::CrystalOptimizerSettings::require_exact_hessian = true |
If true, disable TrustRegion when exact Hessian is unavailable.
| std::string occ::mults::CrystalOptimizerSettings::trajectory_file |
If non-empty, write XYZ trajectory to this file.
| double occ::mults::CrystalOptimizerSettings::trust_region_radius = 1.0 |
Initial trust region radius.
| bool occ::mults::CrystalOptimizerSettings::use_cartesian_engine = true |
Use Cartesian T-tensor (vs S-functions)
| bool occ::mults::CrystalOptimizerSettings::use_ewald = true |
Enable Ewald-split electrostatics.
| bool occ::mults::CrystalOptimizerSettings::use_symmetry = true |
Use crystallographic symmetry to reduce DOF (Z' molecules instead of Z).
When true, only independent molecule DOF are optimized.