Example #1
0
class CostAnalyzerTest(unittest.TestCase):
    def setUp(self):
        self.ca1 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_1.csv")))
        self.ca2 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_2.csv")))

    def test_cost_per_kg(self):
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("Ag"), 3, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("O"), 1, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("AgO"), 2.7416, 3)
        self.assertAlmostEqual(self.ca2.get_cost_per_kg("AgO"), 1.5, 3)

    def test_cost_per_mol(self):
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("Ag"), 0.3236, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("O"), 0.0160, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("AgO"), 0.3396, 3)
        self.assertAlmostEqual(self.ca2.get_cost_per_mol("AgO"), 0.1858, 3)

    def test_sanity(self):
        self.assertEqual(self.ca1.get_cost_per_kg("Ag"), self.ca2.get_cost_per_kg("Ag"))
Example #2
0
class CostAnalyzerTest(unittest.TestCase):

    def setUp(self):
        self.ca1 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_1.csv")))
        self.ca2 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_2.csv")))

    def test_cost_per_kg(self):
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("Ag"), 3, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("O"), 1, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_kg("AgO"), 2.7416, 3)
        self.assertAlmostEqual(self.ca2.get_cost_per_kg("AgO"), 1.5, 3)

    def test_cost_per_mol(self):
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("Ag"), 0.3236, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("O"), 0.0160, 3)
        self.assertAlmostEqual(self.ca1.get_cost_per_mol("AgO"), 0.3396, 3)
        self.assertAlmostEqual(self.ca2.get_cost_per_mol("AgO"), 0.1858, 3)

    def test_sanity(self):
        self.assertEqual(self.ca1.get_cost_per_kg("Ag"), self.ca2.get_cost_per_kg("Ag"))
Example #3
0
 def test_sanity(self):
     ca = CostAnalyzer(CostDBElements())
     self.assertGreater(ca.get_cost_per_kg("PtO"), ca.get_cost_per_kg("MgO"))
Example #4
0
 def setUp(self):
     self.ca1 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_1.csv")))
     self.ca2 = CostAnalyzer(CostDBCSV(os.path.join(module_dir, "costdb_2.csv")))
Example #5
0
 def test_sanity(self):
     ca = CostAnalyzer(CostDBElements())
     self.assertGreater(ca.get_cost_per_kg("PtO"),
                        ca.get_cost_per_kg("MgO"))
Example #6
0
 def setUp(self):
     self.ca1 = CostAnalyzer(
         CostDBCSV(os.path.join(module_dir, "costdb_1.csv")))
     self.ca2 = CostAnalyzer(
         CostDBCSV(os.path.join(module_dir, "costdb_2.csv")))
Example #7
0
from pymatgen.analysis.cost.cost import CostDBElements, CostAnalyzer

cost_analyzer = CostAnalyzer(CostDBElements())


def plug_in(symbol_values):
    formula = symbol_values['formula']
    return {
        'cost_per_kg': cost_analyzer.get_cost_per_kg(formula),
        'cost_per_mol': cost_analyzer.get_cost_per_mol(formula)
    }


DESCRIPTION = """
A rough estimate of cost of a given material based on elemental prices,
based on pymatgen's CostAnalyzer."
"""
config = {
    "name":
    "cost",
    "connections": [{
        "inputs": ["formula"],
        "outputs": ["cost_per_mol", "cost_per_kg"]
    }],
    "categories": ["meta"],
    "symbol_property_map": {
        "cost_per_mol": "cost_per_mol",
        "cost_per_kg": "cost_per_kg",
        "formula": "formula"
    },
    "description":