Skip to content

Commit

Permalink
MAINT: Rename SundmanSolver to Solver (#355)
Browse files Browse the repository at this point in the history
Also cleans up some dangling references to the InteriorPointSolver.
  • Loading branch information
bocklund committed Jun 7, 2021
1 parent 8e3587b commit 505e270
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 12 deletions.
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ See LICENSE.txt for details.

Required Dependencies:

* Python 3.6+
* matplotlib, numpy, scipy, sympy, symengine, xarray, pyparsing, tinydb, cyipopt
* Python 3.7+
* matplotlib, numpy, scipy, sympy, symengine, xarray, pyparsing, tinydb

Installation
------------
Expand Down
6 changes: 3 additions & 3 deletions pycalphad/core/eqsolver.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cdef extern from "_isnan.h":
bint isnan (double) nogil
import scipy.spatial
from pycalphad.core.problem cimport Problem
from pycalphad.core.solver import SundmanSolver
from pycalphad.core.solver import Solver
from pycalphad.core.composition_set cimport CompositionSet
from pycalphad.core.phase_rec cimport PhaseRecord
from pycalphad.core.constants import *
Expand Down Expand Up @@ -143,7 +143,7 @@ def _solve_eq_at_conditions(comps, properties, phase_records, grid, conds_keys,
Problem instance
solver : pycalphad.core.solver.SolverBase
Instance of a SolverBase subclass. If None is supplied, defaults to a
pycalphad.core.solver.InteriorPointSolver
pycalphad.core.solver.Solver
Returns
-------
Expand All @@ -162,7 +162,7 @@ def _solve_eq_at_conditions(comps, properties, phase_records, grid, conds_keys,
cdef np.ndarray[ndim=1, dtype=np.float64_t] p_y, l_constraints, step, chemical_potentials
cdef np.ndarray[ndim=1, dtype=np.float64_t] site_fracs, l_multipliers, phase_fracs
cdef np.ndarray[ndim=2, dtype=np.float64_t] constraint_jac
iter_solver = solver if solver is not None else SundmanSolver(verbose=verbose)
iter_solver = solver if solver is not None else Solver(verbose=verbose)

pure_elements = set(v.Species(list(spec.constituents.keys())[0])
for spec in comps
Expand Down
6 changes: 3 additions & 3 deletions pycalphad/core/equilibrium.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from pycalphad.core.starting_point import starting_point
from pycalphad.codegen.callables import build_phase_records
from pycalphad.core.eqsolver import _solve_eq_at_conditions
from pycalphad.core.solver import SundmanSolver
from pycalphad.core.solver import Solver
from pycalphad.core.light_dataset import LightDataset
import numpy as np
from collections import OrderedDict
Expand Down Expand Up @@ -177,7 +177,7 @@ def equilibrium(dbf, comps, phases, conditions, output=None, model=None,
Maps SymPy Symbol to numbers, for overriding the values of parameters in the Database.
solver : pycalphad.core.solver.SolverBase
Instance of a solver that is used to calculate local equilibria.
Defaults to a pycalphad.core.solver.InteriorPointSolver.
Defaults to a pycalphad.core.solver.Solver.
callables : dict, optional
Pre-computed callable functions for equilibrium calculation.
Expand Down Expand Up @@ -205,7 +205,7 @@ def equilibrium(dbf, comps, phases, conditions, output=None, model=None,
raise EquilibriumError('Components not found in database: {}'
.format(','.join([c.name for c in (set(comps) - set(dbf.species))])))
calc_opts = calc_opts if calc_opts is not None else dict()
solver = solver if solver is not None else SundmanSolver(verbose=verbose)
solver = solver if solver is not None else Solver(verbose=verbose)
parameters = parameters if parameters is not None else dict()
if isinstance(parameters, dict):
parameters = OrderedDict(sorted(parameters.items(), key=str))
Expand Down
2 changes: 1 addition & 1 deletion pycalphad/core/solver.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def solve(self, prob):
raise NotImplementedError("A subclass of Solver must be implemented.")


class SundmanSolver(SolverBase):
class Solver(SolverBase):
def __init__(self, verbose=False, **options):
self.verbose = verbose

Expand Down
6 changes: 3 additions & 3 deletions pycalphad/tests/test_equilibrium.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import numpy as np
from pycalphad import Database, Model, calculate, equilibrium, EquilibriumError, ConditionError
from pycalphad.codegen.callables import build_callables
from pycalphad.core.solver import SolverBase, SundmanSolver
from pycalphad.core.solver import SolverBase, Solver
from pycalphad.core.utils import get_state_variables
import pycalphad.variables as v
from pycalphad.tests.datasets import *
Expand Down Expand Up @@ -461,13 +461,13 @@ def test_equilibrium_raises_with_invalid_solver():
def test_equilibrium_no_opt_solver():
"""Passing in a solver with `ignore_convergence = True` gives a result."""

class NoOptSolver(SundmanSolver):
class NoOptSolver(Solver):
ignore_convergence = True

comps = ['PB', 'SN', 'VA']
phases = list(PBSN_DBF.phases.keys())
conds = {v.T: 300, v.P: 101325, v.X('SN'): 0.50}
ipopt_solver_eq_res = equilibrium(PBSN_DBF, comps, phases, conds, solver=SundmanSolver(), verbose=True)
ipopt_solver_eq_res = equilibrium(PBSN_DBF, comps, phases, conds, solver=Solver(), verbose=True)
# NoOptSolver's results are pdens-dependent
no_opt_eq_res = equilibrium(PBSN_DBF, comps, phases, conds,
solver=NoOptSolver(), calc_opts={'pdens': 50}, verbose=True)
Expand Down

0 comments on commit 505e270

Please sign in to comment.