openff.bespokefit.schema.optimizers.ForceBalanceSchema

model openff.bespokefit.schema.optimizers.ForceBalanceSchema[source]

Bases: BaseOptimizerSchema, ABC

A class containing the main ForceBalance optimizer settings to use during an optimization.

Priors and target definitions are stored separately as part of an OptimizationSchema.

Fields
field type: Literal['ForceBalance'] = 'ForceBalance'
field job_type: Literal['optimize', 'single'] = 'optimize'

The mode to run force balance in.

field penalty_type: Literal['L1', 'L2'] = 'L2'

The penalty type.

field step_convergence_threshold: pydantic.types.PositiveFloat = 0.01

The step size convergence criterion.

Constraints
  • exclusiveMinimum = 0

field objective_convergence_threshold: pydantic.types.PositiveFloat = 0.01

The objective function convergence criterion.

Constraints
  • exclusiveMinimum = 0

field gradient_convergence_threshold: pydantic.types.PositiveFloat = 0.01

The gradient norm convergence criterion.

Constraints
  • exclusiveMinimum = 0

field n_criteria: pydantic.types.PositiveInt = 2

The number of convergence thresholds that must be met for convergence.

Constraints
  • exclusiveMinimum = 0

field eigenvalue_lower_bound: pydantic.types.PositiveFloat = 0.01

The minimum eigenvalue for applying steepest descent correction.

Constraints
  • exclusiveMinimum = 0

field finite_difference_h: pydantic.types.PositiveFloat = 0.01

The step size for finite difference derivatives in many functions.

Constraints
  • exclusiveMinimum = 0

field penalty_additive: pydantic.types.PositiveFloat = 1.0

The factor for the multiplicative penalty function in the objective function.

Constraints
  • exclusiveMinimum = 0

field initial_trust_radius: float = -0.25

The initial value of the optimizers adaptive trust radius which ‘adapts’ (i.e. increases or decreases) based on whether the last step was a good or bad step.

field minimum_trust_radius: float = 0.05

The minimum value of the optimizers adaptive trust radius.

field error_tolerance: pydantic.types.PositiveFloat = 1.0

Steps that increase the objective function by more than this will be rejected.

Constraints
  • exclusiveMinimum = 0

field adaptive_factor: pydantic.types.PositiveFloat = 0.2

The amount to change the step size by in the event of a good / bad step.

Constraints
  • exclusiveMinimum = 0

field adaptive_damping: pydantic.types.PositiveFloat = 1.0

A damping factor that restraints the trust radius to trust0.

Constraints
  • exclusiveMinimum = 0

field normalize_weights: bool = False

Whether to normalize the weights for the fitting targets

field extras: Dict[str, str] = {}

Extra settings (mostly logging settings) to include in the ForceBalance input file.