差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

ab_initio:atomオブジェクト 2009/01/17 22:27 ab_initio:atomオブジェクト 2009/02/02 21:36 現在
ライン 1: ライン 1:
-====== Atomオブジェクト ====== +====== Atomクラスオブジェクト ====== 
 +AtomクラスオブジェクトはListOfAtomsクラスオブジェクトの基本構成要素で、1個の原子の情報を保持する。コンストラクタAtomを用いて
<code python> <code python>
from ASE import Atom from ASE import Atom
ライン 7: ライン 7:
a3 = Atom('Al', (0, 0, 0), tag = 0, magmom = 0.0) a3 = Atom('Al', (0, 0, 0), tag = 0, magmom = 0.0)
a4 = Atom(Z = 13, position = (0, 0, 0), tag = 0, magmom = 0.0) a4 = Atom(Z = 13, position = (0, 0, 0), tag = 0, magmom = 0.0)
 +atom1 = Atom('Al', (0, 0, 0))
 +d = Atom('H', (0.5, 0.5, 0.5), mass=2)
 +silicon = Atom(position=(2.38, 2.38, 0), Z=14)    # same is a1
 +</code>
 +のようにインスタンスを生成する。コンストラクタの第1引数はAtomオブジェクトの原子の元素記号、第2引数は座標を表すタペルである。
 +これ以外にも表にあるキーワード情報を生成時に付加することもできる。
 +
 +ASE defines a python class called ``Atom``.  It is the basic building
 +block of a `ListOfAtoms <list_of_atoms.html#ListOfAtoms>`_.  From a python script,
 +atoms are created like this:
 +
 +The first argument to the constructor of an ``Atom`` object is the
 +chemical symbol, and the second argument is the position.  The
 +position can be any numerical sequence of length three.  The
 +properties of an atom can also be set using keywords like it is done
 +in the ``a2`` example.  The following keywords can be used:
 +
 +^  keyword    ^  諸元          ^  type      ^  デフォルト値  ^  問合せmethod            ^
 +| ''symbol''  | 元素記号      | 文字列      | (必須/自動設定) | ''GetChemicalSymbol''    |
 +| ''position'' | 座標          | 3成分タペル | ''(0, 0, 0)''  | ''GetCartesianPosition'' |
 +| ''Z''        | 原子番号      | 整数        | (必須/自動設定) | ''GetAtomicNumber''      |
 +| ''mass''    | 質量          | 実数        | 自動設定        | ''GetMass''              |
 +| ''tag''      | タグ          | 整数        | ''0''          | ''GetTag''              |
 +| ''momentum'' | 運動量        | 3成分タペル | ''(0, 0, 0)''  | ''GetCartesianMomentum'' |
 +| ''velocity'' | 速度          | 3成分タペル | ''(0, 0, 0)''  | ''GetCartesianVelocity'' |
 +| ''magmom''  | 磁気モーメント | 実数        | ''0''          | ''GetMagneticMoment''    |
 +
 +
 +元素記号(''symbol'')と原子番号(''Z'')のどちらかを必ず指定しなければいけない。一方を指定すれば自動的にもう一方も設定される。
 +質量には元素に応じて原子量が設定される。他の値は「ゼロ」に設定される。
 +
 +<code python>
 +>>> a1.GetMass()
 +28.0855
 +</code>
 +
 +Here we used one of the ''Get'' methods from the last column.  An atom
 +also has the corresponding ''Set'' methods, like
 +''SetCartesianVelocity'' and ''SetMass'':
 +
 +<code python>
 +>>> a1.SetCartesianVelocity((0, 0, 0.1))
 +</code>
 +
 +There is also a method for calculating the kinetic energy of an atom:
 +
 +<code python>
 +>>> a1.GetKineticEnergy()
 +0.14042750000000004
 +</code>
 +
 +An atom also has two methods for interacting with a force calculator:
 +''GetCartesianForce()'' and ''SetCartesianForce(force)''.
 +
 +===== ChemicalElements module =====
 +
 +The ''ChemicalElements'' module defines an function ''Element()'' that
 +can take an atomic number or a chemical symbol as argument:
 +
 +<code python>
 +>>> from ASE.ChemicalElements import Element
 +>>> e = Element('Fe')
 +>>> e.number
 +26
 +>>> e.mass
 +55.847000000000001
 +>>> Element(99).name
 +'Einsteinium'
 +</code>
 +
 +The ''Element()'' function returns a special object with the following
 +attributes: ''symbol'', ''number'', ''name'' and, if it makes sence,
 +also ''mass'', ''covalent_radius'', ''cpk_color'' and ''crystal_structure''.
 +
 +The individual properties are also avilable as lists:
 +
 +<code python>
 +>>> from ASE.ChemicalElements.name import names
 +>>> names[5:11]
 +['Boron', 'Carbon', 'Nitrogen', 'Oxygen', 'Fluorine', 'Neon']
 +</code>
 +
 +Another example:
 +
 +<code python>
 +>>> ru = elements['Ru']
 +>>> ru['state']
 +'hcp'
 +>>> a = ru['a']
 +>>> c = ru['c/a'] * a
</code> </code>
ab_initio/atomオブジェクト.txt · 最終更新: 2009/02/02 21:36 by kimi
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0