• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python materials.TransformedStructure类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中pymatgen.alchemy.materials.TransformedStructure的典型用法代码示例。如果您正苦于以下问题:Python TransformedStructure类的具体用法?Python TransformedStructure怎么用?Python TransformedStructure使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了TransformedStructure类的19个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: test_snl

    def test_snl(self):
        self.trans.set_parameter("author", "will")
        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")
            snl = self.trans.to_snl([("will", "[email protected]")])
            self.assertEqual(len(w), 1, "Warning not raised on type conversion " "with other_parameters")
        ts = TransformedStructure.from_snl(snl)
        self.assertEqual(ts.history[-1]["@class"], "SubstitutionTransformation")

        h = ("testname", "testURL", {"test": "testing"})
        snl = StructureNL(ts.final_structure, [("will", "[email protected]")], history=[h])
        snl = TransformedStructure.from_snl(snl).to_snl([("notwill", "[email protected]")])
        self.assertEqual(snl.history, [h])
        self.assertEqual(snl.authors, [("notwill", "[email protected]")])
开发者ID:shyamd,项目名称:pymatgen,代码行数:14,代码来源:test_materials.py


示例2: test_append_transformation

 def test_append_transformation(self):
     t = SubstitutionTransformation({"Fe":"Mn"})
     self.trans.append_transformation(t)
     self.assertEqual("NaMnPO4", self.trans.final_structure.composition.reduced_formula)
     self.assertEqual(len(self.trans.structures), 3)
     coords = list()
     coords.append([0, 0, 0])
     coords.append([0.75, 0.5, 0.75])
     lattice = [[ 3.8401979337, 0.00, 0.00], [1.9200989668, 3.3257101909, 0.00], [0.00, -2.2171384943, 3.1355090603]]
     struct = Structure(lattice, ["Si4+", "Si4+"], coords)
     ts = TransformedStructure(struct, [])
     ts.append_transformation(SupercellTransformation.from_scaling_factors(2, 1, 1))
     alt = ts.append_transformation(PartialRemoveSpecieTransformation('Si4+', 0.5, algo=PartialRemoveSpecieTransformation.ALGO_COMPLETE), 5)
     self.assertEqual(len(alt), 2)
开发者ID:chenweis,项目名称:pymatgen,代码行数:14,代码来源:test_materials.py


示例3: setUp

 def setUp(self):
     structure_dict = {
         "lattice": {"a": 4.754150115,
                     "volume": 302.935463898643,
                     "c": 10.462573348,
                     "b": 6.090300362,
                     "matrix": [[4.754150115, 0.0, 0.0],
                                [0.0, 6.090300362, 0.0],
                                [0.0, 0.0, 10.462573348]],
                     "alpha": 90.0,
                     "beta": 90.0,
                     "gamma": 90.0},
         "sites": [{"occu": 1, "abc": [0.0, 0.0, 0.0],
                    "xyz": [0.0, 0.0, 0.0],
                    "species": [{"occu": 1, "element": "Li"}],
                    "label": "Li"}, {"occu": 1,
                                     "abc": [0.5000010396179928, 0.0,
                                             0.5000003178950235],
                                     "xyz": [2.37708, 0.0, 5.23129],
                                     "species": [{"occu": 1,
                                                  "element": "Li"}],
                                     "label": "Li"},
                                 {"occu": 1, "abc": [0.0,
                                                     0.49999997028061194,
                                                     0.0],
                                  "xyz": [0.0, 3.04515, 0.0],
                                  "species": [{"occu": 1, "element": "Li"}], "label": "Li"}, {"occu": 1, "abc": [0.5000010396179928, 0.49999997028061194, 0.5000003178950235], "xyz": [2.37708, 3.04515, 5.23129], "species": [{"occu": 1, "element": "Li"}], "label": "Li"}, {"occu": 1, "abc": [0.7885825876997996, 0.5473161916279229, 0.3339168944194627], "xyz": [3.74904, 3.33332, 3.4936300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2114173881108085, 0.452683748933301, 0.6660827855827808], "xyz": [1.00511, 2.75698, 6.968940000000001], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7114184277288014, 0.5473161916279229, 0.8339172123144861], "xyz": [3.38219, 3.33332, 8.72492], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7885825876997996, 0.9526820772587701, 0.3339168944194627], "xyz": [3.74904, 5.8021199999999995, 3.4936300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.28858365150718424, 0.047317863302453654, 0.16608342347556082], "xyz": [1.37197, 0.28818, 1.73766], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7440972443925447, 0.25000080611787734, 0.09613791622232937], "xyz": [3.537549999999999, 1.52258, 1.00585], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.28858365150718424, 0.452683748933301, 0.16608342347556082], "xyz": [1.37197, 2.75698, 1.73766], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2114173881108085, 0.047317863302453654, 0.6660827855827808], "xyz": [1.00511, 0.28818, 6.968940000000001], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2559006279926859, 0.7499991344433464, 0.9038627195677177], "xyz": [1.21659, 4.56772, 9.45673], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7559016676106785, 0.25000080611787734, 0.5961372783295493], "xyz": [3.5936699999999986, 1.52258, 6.2371300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7939989080466804, 0.7499991344433464, 0.5421304884886912], "xyz": [3.77479, 4.56772, 5.67208], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.24409830819992942, 0.7499991344433464, 0.40386240167269416], "xyz": [1.16048, 4.56772, 4.22544], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7060021073819206, 0.7499991344433464, 0.04213017059366761], "xyz": [3.35644, 4.56772, 0.44079000000000007], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2939978684286875, 0.25000080611787734, 0.9578695094085758], "xyz": [1.3977099999999996, 1.52258, 10.02178], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.20600106776392774, 0.25000080611787734, 0.4578701473013559], "xyz": [0.9793599999999998, 1.52258, 4.7905], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7114184277288014, 0.9526820772587701, 0.8339172123144861], "xyz": [3.38219, 5.8021199999999995, 8.72492], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.5793611756830275, 0.7499991344433464, 0.9051119342269868], "xyz": [2.75437, 4.56772, 9.4698], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.9206377363201961, 0.7499991344433464, 0.40511161633196324], "xyz": [4.37685, 4.56772, 4.23851], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.42063880012758065, 0.25000080611787734, 0.09488774577525667], "xyz": [1.9997799999999994, 1.52258, 0.99277], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.07936223949041206, 0.25000080611787734, 0.5948880636702801], "xyz": [0.3773, 1.52258, 6.22406], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.021860899947623972, 0.7499991344433464, 0.7185507570598875], "xyz": [0.10393, 4.56772, 7.517890000000001], "species": [{"occu": 1, "element": "Fe"}], "label": "Fe"}, {"occu": 1, "abc": [0.478135932819614, 0.7499991344433464, 0.21855043916486389], "xyz": [2.27313, 4.56772, 2.2866], "species": [{"occu": 1, "element": "Fe"}], "label": "Fe"}, {"occu": 1, "abc": [0.9781369724376069, 0.25000080611787734, 0.2814489229423561], "xyz": [4.65021, 1.52258, 2.9446800000000004], "species": [{"occu": 1, "element": "Fe"}], "label": "Fe"}, {"occu": 1, "abc": [0.5218619395656168, 0.25000080611787734, 0.7814492408373795], "xyz": [2.48101, 1.52258, 8.17597], "species": [{"occu": 1, "element": "Fe"}], "label": "Fe"}]}
     structure = Structure.from_dict(structure_dict)
     self.structure = structure
     trans = [SubstitutionTransformation({"Li": "Na"})]
     self.trans = TransformedStructure(structure, trans)
开发者ID:bocklund,项目名称:pymatgen,代码行数:31,代码来源:test_materials.py


示例4: __init__

    def __init__(self, cif_string, transformations=None, primitive=True,
                 extend_collection=False):
        """
        Generates a Transmuter from a cif string, possibly
        containing multiple structures.

        Args:
            cif_string:
                A string containing a cif or a series of cifs
            transformations:
                New transformations to be applied to all structures
            primitive:
                Whether to generate the primitive cell from the cif.
            extend_collection:
                Whether to use more than one output structure from one-to-many
                transformations.
        """
        transformed_structures = []
        lines = cif_string.split("\n")
        structure_data = []
        read_data = False
        for line in lines:
            if re.match("^\s*data", line):
                structure_data.append([])
                read_data = True
            if read_data:
                structure_data[-1].append(line)
        for data in structure_data:
            tstruct = TransformedStructure.from_cif_string("\n".join(data), [],
                                                           primitive)
            transformed_structures.append(tstruct)
        StandardTransmuter.__init__(self, transformed_structures,
                                    transformations, extend_collection)
开发者ID:miaoliu,项目名称:pymatgen,代码行数:33,代码来源:transmuters.py


示例5: test_snl

 def test_snl(self):
     self.trans.set_parameter('author', 'will')
     with warnings.catch_warnings(record=True) as w:
         warnings.simplefilter("always")
         snl = self.trans.to_snl([('will', '[email protected]')])
         self.assertEqual(len(w), 1, 'Warning not raised on type conversion '
                          'with other_parameters')
     ts = TransformedStructure.from_snl(snl)
     self.assertEqual(ts.history[-1]['@class'], 'SubstitutionTransformation')
     
     h = ('testname', 'testURL', {'test' : 'testing'})
     snl = StructureNL(ts.final_structure,[('will', '[email protected]')], 
                       history = [h])
     snl = TransformedStructure.from_snl(snl).to_snl([('notwill', 
                                                       '[email protected]')])
     self.assertEqual(snl.history, [h])
     self.assertEqual(snl.authors, [('notwill', '[email protected]')])
开发者ID:albalu,项目名称:pymatgen,代码行数:17,代码来源:test_materials.py


示例6: test_from_dict

 def test_from_dict(self):
     d = json.load(open(os.path.join(test_dir, "transformations.json"), "r"))
     d["other_parameters"] = {"tags": ["test"]}
     ts = TransformedStructure.from_dict(d)
     ts.other_parameters["author"] = "Will"
     ts.append_transformation(SubstitutionTransformation({"Fe": "Mn"}))
     self.assertEqual("MnPO4", ts.final_structure.composition.reduced_formula)
     self.assertEqual(ts.other_parameters, {"author": "Will", "tags": ["test"]})
开发者ID:shyamd,项目名称:pymatgen,代码行数:8,代码来源:test_materials.py


示例7: test_from_dict

 def test_from_dict(self):
     d = json.load(open(os.path.join(test_dir, 'transformations.json'), 'r'))
     d['other_parameters'] = {'tags': ['test']}
     ts = TransformedStructure.from_dict(d)
     ts.set_parameter('author', 'Will')
     ts.append_transformation(SubstitutionTransformation({"Fe":"Mn"}))
     self.assertEqual("MnPO4", ts.final_structure.composition.reduced_formula)
     self.assertEqual(ts.other_parameters, {'author': 'Will', 'tags': ['test']})
开发者ID:chenweis,项目名称:pymatgen,代码行数:8,代码来源:test_materials.py


示例8: test_undo_last_transformation_and_redo

 def test_undo_last_transformation_and_redo(self):
     trans = []
     trans.append(SubstitutionTransformation({"Li":"Na"}))
     trans.append(SubstitutionTransformation({"Fe":"Mn"}))
     ts = TransformedStructure(self.structure, trans)
     self.assertEqual("NaMnPO4", ts.final_structure.composition.reduced_formula)
     ts.undo_last_transformation()
     self.assertEqual("NaFePO4", ts.final_structure.composition.reduced_formula)
     ts.undo_last_transformation()
     self.assertEqual("LiFePO4", ts.final_structure.composition.reduced_formula)
     self.assertRaises(IndexError, ts.undo_last_transformation)
     ts.redo_next_transformation()
     self.assertEqual("NaFePO4", ts.final_structure.composition.reduced_formula)
     ts.redo_next_transformation()
     self.assertEqual("NaMnPO4", ts.final_structure.composition.reduced_formula)
     self.assertRaises(IndexError, ts.redo_next_transformation)
开发者ID:chenweis,项目名称:pymatgen,代码行数:16,代码来源:test_materials.py


示例9: convert_fmt

def convert_fmt(args):
    iformat = args.input_format[0]
    oformat = args.output_format[0]
    filename = args.input_filename[0]
    out_filename = args.output_filename[0]

    try:
        if iformat == "smart":
            structure = read_structure(filename)
        if iformat == "POSCAR":
            p = Poscar.from_file(filename)
            structure = p.structure
        elif iformat == "CIF":
            r = CifParser(filename)
            structure = r.get_structures()[0]
        elif iformat == "CSSR":
            structure = Cssr.from_file(filename).structure

        if oformat == "smart":
            write_structure(structure, out_filename)
        elif oformat == "POSCAR":
            p = Poscar(structure)
            p.write_file(out_filename)
        elif oformat == "CIF":
            w = CifWriter(structure)
            w.write_file(out_filename)
        elif oformat == "CSSR":
            c = Cssr(structure)
            c.write_file(out_filename)
        elif oformat == "VASP":
            input_set = MPVaspInputSet()
            ts = TransformedStructure(
                structure,
                [],
                history=[
                    {"source": "file", "datetime": str(datetime.datetime.now()), "original_file": open(filename).read()}
                ],
            )
            ts.write_vasp_input(input_set, output_dir=out_filename)
        elif oformat == "MITVASP":
            input_set = MITVaspInputSet()
            ts = TransformedStructure(
                structure,
                [],
                history=[
                    {"source": "file", "datetime": str(datetime.datetime.now()), "original_file": open(filename).read()}
                ],
            )
            ts.write_vasp_input(input_set, output_dir=out_filename)

    except Exception as ex:
        print "Error converting file. Are they in the right format?"
        print str(ex)
开发者ID:sikisis,项目名称:pymatgen,代码行数:53,代码来源:matgenie.py


示例10: __init__

 def __init__(self, poscar_string, transformations=[], extend_collection=False):
     """
     Generates a transmuter from a sequence of POSCARs.
     
     Args:
         poscar_string:
             List of POSCAR strings
         transformations:
             New transformations to be applied to all structures.
         primitive:
             Whether to generate the primitive cell from the cif.
         extend_collection:
             Whether to use more than one output structure from one-to-many
             transformations.
     """
     transformed_structures = []
     transformed_structures.append(TransformedStructure.from_poscar_string(poscar_string, []))
     StandardTransmuter.__init__(self, transformed_structures, transformations, extend_collection=extend_collection)
开发者ID:chenweis,项目名称:pymatgen,代码行数:18,代码来源:transmuters.py


示例11: __init__

 def __init__(self, poscar_string, transformations=None,
              extend_collection=False):
     tstruct = TransformedStructure.from_poscar_string(poscar_string, [])
     StandardTransmuter.__init__(self, [tstruct], transformations,
                                 extend_collection=extend_collection)
开发者ID:NadezhdaBzhilyanskaya,项目名称:pymatgen,代码行数:5,代码来源:transmuters.py


示例12: TransformedStructureTest

class TransformedStructureTest(unittest.TestCase):
    def setUp(self):
        structure_dict = {
            "lattice": {
                "a": 4.754150115,
                "volume": 302.935463898643,
                "c": 10.462573348,
                "b": 6.090300362,
                "matrix": [[4.754150115, 0.0, 0.0], [0.0, 6.090300362, 0.0], [0.0, 0.0, 10.462573348]],
                "alpha": 90.0,
                "beta": 90.0,
                "gamma": 90.0,
            },
            "sites": [
                {
                    "occu": 1,
                    "abc": [0.0, 0.0, 0.0],
                    "xyz": [0.0, 0.0, 0.0],
                    "species": [{"occu": 1, "element": "Li"}],
                    "label": "Li",
                },
                {
                    "occu": 1,
                    "abc": [0.5000010396179928, 0.0, 0.5000003178950235],
                    "xyz": [2.37708, 0.0, 5.23129],
                    "species": [{"occu": 1, "element": "Li"}],
                    "label": "Li",
                },
                {
                    "occu": 1,
                    "abc": [0.0, 0.49999997028061194, 0.0],
                    "xyz": [0.0, 3.04515, 0.0],
                    "species": [{"occu": 1, "element": "Li"}],
                    "label": "Li",
                },
                {
                    "occu": 1,
                    "abc": [0.5000010396179928, 0.49999997028061194, 0.5000003178950235],
                    "xyz": [2.37708, 3.04515, 5.23129],
                    "species": [{"occu": 1, "element": "Li"}],
                    "label": "Li",
                },
                {
                    "occu": 1,
                    "abc": [0.7885825876997996, 0.5473161916279229, 0.3339168944194627],
                    "xyz": [3.74904, 3.33332, 3.4936300000000005],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.2114173881108085, 0.452683748933301, 0.6660827855827808],
                    "xyz": [1.00511, 2.75698, 6.968940000000001],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.7114184277288014, 0.5473161916279229, 0.8339172123144861],
                    "xyz": [3.38219, 3.33332, 8.72492],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.7885825876997996, 0.9526820772587701, 0.3339168944194627],
                    "xyz": [3.74904, 5.8021199999999995, 3.4936300000000005],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.28858365150718424, 0.047317863302453654, 0.16608342347556082],
                    "xyz": [1.37197, 0.28818, 1.73766],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.7440972443925447, 0.25000080611787734, 0.09613791622232937],
                    "xyz": [3.537549999999999, 1.52258, 1.00585],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.28858365150718424, 0.452683748933301, 0.16608342347556082],
                    "xyz": [1.37197, 2.75698, 1.73766],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
                    "abc": [0.2114173881108085, 0.047317863302453654, 0.6660827855827808],
                    "xyz": [1.00511, 0.28818, 6.968940000000001],
                    "species": [{"occu": 1, "element": "O"}],
                    "label": "O",
                },
                {
                    "occu": 1,
#.........这里部分代码省略.........
开发者ID:shyamd,项目名称:pymatgen,代码行数:101,代码来源:test_materials.py


示例13: from_filenames

 def from_filenames(poscar_filenames, transformations=[], extend_collection=False):
     transformed_structures = []
     for filename in poscar_filenames:
         with open(filename, "r") as f:
             transformed_structures.append(TransformedStructure.from_poscar_string(f.read(), []))
     return StandardTransmuter(transformed_structures, transformations, extend_collection=extend_collection)
开发者ID:chenweis,项目名称:pymatgen,代码行数:6,代码来源:transmuters.py


示例14: test_undo_and_redo_last_change

 def test_undo_and_redo_last_change(self):
     trans = [SubstitutionTransformation({"Li": "Na"}), SubstitutionTransformation({"Fe": "Mn"})]
     ts = TransformedStructure(self.structure, trans)
     self.assertEqual("NaMnPO4", ts.final_structure.composition.reduced_formula)
     ts.undo_last_change()
     self.assertEqual("NaFePO4", ts.final_structure.composition.reduced_formula)
     ts.undo_last_change()
     self.assertEqual("LiFePO4", ts.final_structure.composition.reduced_formula)
     self.assertRaises(IndexError, ts.undo_last_change)
     ts.redo_next_change()
     self.assertEqual("NaFePO4", ts.final_structure.composition.reduced_formula)
     ts.redo_next_change()
     self.assertEqual("NaMnPO4", ts.final_structure.composition.reduced_formula)
     self.assertRaises(IndexError, ts.redo_next_change)
     # Make sure that this works with filters.
     f3 = ContainsSpecieFilter(["O2-"], strict_compare=True, AND=False)
     ts.append_filter(f3)
     ts.undo_last_change()
     ts.redo_next_change()
开发者ID:shyamd,项目名称:pymatgen,代码行数:19,代码来源:test_materials.py


示例15: CifParser

excluded_bonding_elements = args.exclude_bonding[0].split(',') if args.exclude_bonding else []

file_format = args.format
filename = args.input_file[0]

s = None

if filename.endswith(".cif"):
    file_format = "cif"
elif filename.startswith("POSCAR"):
    file_format = "poscar"
elif re.search('\.json', filename):
    file_format = 'mpjson'


if file_format == 'poscar':
    p = Poscar.from_file(filename)
    s = p.struct
elif file_format == 'cif':
    r = CifParser(filename)
    s = r.get_structures(False)[0]
else:
    d = json.load(file_open_zip_aware(filename))
    ts = TransformedStructure.from_dict(d)
    s = ts.final_structure

if s:
    vis = StructureVis(excluded_bonding_elements=excluded_bonding_elements)
    vis.set_structure(s)
    vis.show()
开发者ID:chenweis,项目名称:pymatgen,代码行数:30,代码来源:vis_structure.py


示例16: setUp

 def setUp(self):
     structure = PymatgenTest.get_structure("LiFePO4")
     self.structure = structure
     trans = [SubstitutionTransformation({"Li": "Na"})]
     self.trans = TransformedStructure(structure, trans)
开发者ID:albalu,项目名称:pymatgen,代码行数:5,代码来源:test_materials.py


示例17: TransformedStructureTest

class TransformedStructureTest(PymatgenTest):

    def setUp(self):
        structure = PymatgenTest.get_structure("LiFePO4")
        self.structure = structure
        trans = [SubstitutionTransformation({"Li": "Na"})]
        self.trans = TransformedStructure(structure, trans)

    def test_append_transformation(self):
        t = SubstitutionTransformation({"Fe": "Mn"})
        self.trans.append_transformation(t)
        self.assertEqual("NaMnPO4",
                         self.trans.final_structure.composition
                         .reduced_formula)
        self.assertEqual(len(self.trans.structures), 3)
        coords = list()
        coords.append([0, 0, 0])
        coords.append([0.75, 0.5, 0.75])
        lattice = [[3.8401979337, 0.00, 0.00],
                   [1.9200989668, 3.3257101909, 0.00],
                   [0.00, -2.2171384943, 3.1355090603]]
        struct = Structure(lattice, ["Si4+", "Si4+"], coords)
        ts = TransformedStructure(struct, [])
        ts.append_transformation(SupercellTransformation
                                 .from_scaling_factors(2, 1, 1))
        alt = ts.append_transformation(
            PartialRemoveSpecieTransformation(
                'Si4+', 0.5,
                algo=PartialRemoveSpecieTransformation.ALGO_COMPLETE), 5)
        self.assertEqual(len(alt), 2)

    def test_append_filter(self):
        f3 = ContainsSpecieFilter(['O2-'], strict_compare=True, AND=False)
        self.trans.append_filter(f3)

    def test_get_vasp_input(self):
        SETTINGS["PMG_VASP_PSP_DIR"] = os.path.abspath(
                os.path.join(os.path.dirname(__file__), "..", "..", "..",
                             "test_files"))
        potcar = self.trans.get_vasp_input(MPRelaxSet)['POTCAR']
        self.assertEqual("Na_pv\nFe_pv\nP\nO",
                         "\n".join([p.symbol for p in potcar]))
        self.assertEqual(len(self.trans.structures), 2)

    def test_final_structure(self):
        self.assertEqual("NaFePO4", self.trans.final_structure.composition
                         .reduced_formula)

    def test_from_dict(self):
        d = json.load(open(os.path.join(test_dir, 'transformations.json'),
                           'r'))
        d['other_parameters'] = {'tags': ['test']}
        ts = TransformedStructure.from_dict(d)
        ts.other_parameters['author'] = 'Will'
        ts.append_transformation(SubstitutionTransformation({"Fe": "Mn"}))
        self.assertEqual("MnPO4",
                         ts.final_structure.composition.reduced_formula)
        self.assertEqual(ts.other_parameters, {'author': 'Will',
                                               'tags': ['test']})

    def test_undo_and_redo_last_change(self):
        trans = [SubstitutionTransformation({"Li": "Na"}),
                 SubstitutionTransformation({"Fe": "Mn"})]
        ts = TransformedStructure(self.structure, trans)
        self.assertEqual("NaMnPO4",
                         ts.final_structure.composition.reduced_formula)
        ts.undo_last_change()
        self.assertEqual("NaFePO4",
                         ts.final_structure.composition.reduced_formula)
        ts.undo_last_change()
        self.assertEqual("LiFePO4",
                         ts.final_structure.composition.reduced_formula)
        self.assertRaises(IndexError, ts.undo_last_change)
        ts.redo_next_change()
        self.assertEqual("NaFePO4",
                         ts.final_structure.composition.reduced_formula)
        ts.redo_next_change()
        self.assertEqual("NaMnPO4",
                         ts.final_structure.composition.reduced_formula)
        self.assertRaises(IndexError, ts.redo_next_change)
        #Make sure that this works with filters.
        f3 = ContainsSpecieFilter(['O2-'], strict_compare=True, AND=False)
        ts.append_filter(f3)
        ts.undo_last_change()
        ts.redo_next_change()

    def test_as_dict(self):
        self.trans.set_parameter('author', 'will')
        d = self.trans.as_dict()
        self.assertIn('last_modified', d)
        self.assertIn('history', d)
        self.assertIn('version', d)
        self.assertIn('author', d['other_parameters'])
        self.assertEqual(Structure.from_dict(d).formula, 'Na4 Fe4 P4 O16')

    def test_snl(self):
        self.trans.set_parameter('author', 'will')
        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")
            snl = self.trans.to_snl([('will', '[email protected]')])
#.........这里部分代码省略.........
开发者ID:albalu,项目名称:pymatgen,代码行数:101,代码来源:test_materials.py


示例18: TransformedStructureTest

class TransformedStructureTest(unittest.TestCase):

    def setUp(self):
        structure_dict = {"lattice": {"a": 4.754150115,
                                      "volume": 302.935463898643,
                                      "c": 10.462573348,
                                      "b": 6.090300362,
                                      "matrix": [[4.754150115, 0.0, 0.0],
                                                 [0.0, 6.090300362, 0.0],
                                                 [0.0, 0.0, 10.462573348]],
                                      "alpha": 90.0,
                                      "beta": 90.0,
                                      "gamma": 90.0},
                          "sites": [{"occu": 1, "abc": [0.0, 0.0, 0.0],
                                     "xyz": [0.0, 0.0, 0.0],
                                     "species": [{"occu": 1, "element": "Li"}],
                                     "label": "Li"}, {"occu": 1, "abc":
                                                      [0.5000010396179928, 0.0, 0.5000003178950235],
                                                      "xyz": [2.37708, 0.0, 5.23129],
                                                      "species": [{"occu": 1, "element": "Li"}], "label": "Li"},
                                    {"occu": 1, "abc": [0.0, 0.49999997028061194, 0.0], "xyz": [0.0, 3.04515, 0.0],
                                     "species": [{"occu": 1, "element": "Li"}], "label": "Li"}, {"occu": 1, "abc": [0.5000010396179928, 0.49999997028061194, 0.5000003178950235], "xyz": [2.37708, 3.04515, 5.23129], "species": [{"occu": 1, "element": "Li"}], "label": "Li"}, {"occu": 1, "abc": [0.7885825876997996, 0.5473161916279229, 0.3339168944194627], "xyz": [3.74904, 3.33332, 3.4936300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2114173881108085, 0.452683748933301, 0.6660827855827808], "xyz": [1.00511, 2.75698, 6.968940000000001], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7114184277288014, 0.5473161916279229, 0.8339172123144861], "xyz": [3.38219, 3.33332, 8.72492], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7885825876997996, 0.9526820772587701, 0.3339168944194627], "xyz": [3.74904, 5.8021199999999995, 3.4936300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.28858365150718424, 0.047317863302453654, 0.16608342347556082], "xyz": [1.37197, 0.28818, 1.73766], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7440972443925447, 0.25000080611787734, 0.09613791622232937], "xyz": [3.537549999999999, 1.52258, 1.00585], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.28858365150718424, 0.452683748933301, 0.16608342347556082], "xyz": [1.37197, 2.75698, 1.73766], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2114173881108085, 0.047317863302453654, 0.6660827855827808], "xyz": [1.00511, 0.28818, 6.968940000000001], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2559006279926859, 0.7499991344433464, 0.9038627195677177], "xyz": [1.21659, 4.56772, 9.45673], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7559016676106785, 0.25000080611787734, 0.5961372783295493], "xyz": [3.5936699999999986, 1.52258, 6.2371300000000005], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7939989080466804, 0.7499991344433464, 0.5421304884886912], "xyz": [3.77479, 4.56772, 5.67208], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.24409830819992942, 0.7499991344433464, 0.40386240167269416], "xyz": [1.16048, 4.56772, 4.22544], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7060021073819206, 0.7499991344433464, 0.04213017059366761], "xyz": [3.35644, 4.56772, 0.44079000000000007], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.2939978684286875, 0.25000080611787734, 0.9578695094085758], "xyz": [1.3977099999999996, 1.52258, 10.02178], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.20600106776392774, 0.25000080611787734, 0.4578701473013559], "xyz": [0.9793599999999998, 1.52258, 4.7905], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.7114184277288014, 0.9526820772587701, 0.8339172123144861], "xyz": [3.38219, 5.8021199999999995, 8.72492], "species": [{"occu": 1, "element": "O"}], "label": "O"}, {"occu": 1, "abc": [0.5793611756830275, 0.7499991344433464, 0.9051119342269868], "xyz": [2.75437, 4.56772, 9.4698], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.9206377363201961, 0.7499991344433464, 0.40511161633196324], "xyz": [4.37685, 4.56772, 4.23851], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.42063880012758065, 0.25000080611787734, 0.09488774577525667], "xyz": [1.9997799999999994, 1.52258, 0.99277], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.07936223949041206, 0.25000080611787734, 0.5948880636702801], "xyz": [0.3773, 1.52258, 6.22406], "species": [{"occu": 1, "element": "P"}], "label": "P"}, {"occu": 1, "abc": [0.021860899947623972, 0.7499991344433464, 0.7185507570598875], "xyz": [0.10393, 4.56772, 7.517890000000001], "species": [{"occu": 1, "element": "Fe"}], "label": "Fe"}, {"occu": 1, "abc": [0.478135932819614, 0.7499991344433464, 0.21855043916486389], "xyz": [2.27313, 4.56772, 2.2866], "spec 

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python bond_valence.BVAnalyzer类代码示例发布时间:2022-05-25
下一篇:
Python pymatgen.Structure类代码示例发布时间:2022-05-25
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap