Skip to content
Snippets Groups Projects
Commit c1a1e4cd authored by Carl Poelking's avatar Carl Poelking
Browse files

Valence charge density added.

parent ad9f37a5
Branches
Tags 0.1.0
No related merge requests found
...@@ -76,7 +76,6 @@ public: ...@@ -76,7 +76,6 @@ public:
_box.ZeroMatrix(); _box.ZeroMatrix();
} }
vec connect(const vec &r_i, const vec &r_j) const { vec connect(const vec &r_i, const vec &r_j) const {
std::cout << "connect open" << std::endl;
return r_j - r_i; return r_j - r_i;
} }
template<class Archive> template<class Archive>
......
...@@ -48,6 +48,17 @@ class PeriodicTable(object): ...@@ -48,6 +48,17 @@ class PeriodicTable(object):
1.570,1.560,2.000,1.560,1.440,1.340,1.300,1.280,1.260,1.270,1.300,1.340,1.490,1.480,1.470,1.460,1.460, 1.570,1.560,2.000,1.560,1.440,1.340,1.300,1.280,1.260,1.270,1.300,1.340,1.490,1.480,1.470,1.460,1.460,
2.000,2.000,2.000,2.000,2.000,1.650,2.000,1.420,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000, 2.000,2.000,2.000,2.000,2.000,1.650,2.000,1.420,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,
2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000 ] 2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000,2.000 ]
element_valence = [-1.,
1,-1, 1, 2, 3, 4, 3, 2, 1,-1, 1, 2, 3, 4, 3, 2,
1,-1, 1, 2,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
-1,-1,-1,-1]
def __init__(self): def __init__(self):
self.elements_by_z = {} self.elements_by_z = {}
self.elements_by_name = {} self.elements_by_name = {}
...@@ -60,13 +71,13 @@ class PeriodicTable(object): ...@@ -60,13 +71,13 @@ class PeriodicTable(object):
raise RuntimeError("Invalid element identifier '%s'" % key) raise RuntimeError("Invalid element identifier '%s'" % key)
def setup(self): def setup(self):
element_z = [ i for i in range(len(self.element_names)) ] element_z = [ i for i in range(len(self.element_names)) ]
assert len(self.element_names) == len(self.element_mass) == len(self.element_covrad) assert len(self.element_names) == len(self.element_mass) == len(self.element_covrad) == len(self.element_valence)
for z, name, mass, covrad, elneg in zip(element_z, self.element_names, self.element_mass, self.element_covrad, self.element_elneg): for z, name, mass, covrad, elneg, valence in zip(element_z, self.element_names, self.element_mass, self.element_covrad, self.element_elneg, self.element_valence):
name = name.strip() name = name.strip()
self.addElement(z, name, mass, covrad, elneg) self.addElement(z, name, mass, covrad, elneg, valence)
return self return self
def addElement(self, z, name, mass, covrad, elneg): def addElement(self, z, name, mass, covrad, elneg, valence):
elem = AtomicElement(z, name, mass, covrad, elneg) elem = AtomicElement(z, name, mass, covrad, elneg, valence)
self.elements_by_z[z] = elem self.elements_by_z[z] = elem
self.elements_by_name[name] = elem self.elements_by_name[name] = elem
return return
...@@ -77,13 +88,14 @@ class PeriodicTable(object): ...@@ -77,13 +88,14 @@ class PeriodicTable(object):
return props return props
class AtomicElement(object): class AtomicElement(object):
def __init__(self, z, name, mass, covrad, elneg): def __init__(self, z, name, mass, covrad, elneg, valence):
self.z = z self.z = z
self.name = name self.name = name
self.mass = mass self.mass = mass
self.covrad = covrad self.covrad = covrad
self.elneg = elneg self.elneg = elneg
self.property_dict = { 'z' : z, 'covrad' : covrad, 'name': name, 'mass': mass, 'elneg': elneg } self.valence = valence
self.property_dict = { 'z' : z, 'covrad' : covrad, 'name': name, 'mass': mass, 'elneg': elneg, 'valence': valence }
def __getitem__(self, key): def __getitem__(self, key):
return self.property_dict[key] return self.property_dict[key]
......
...@@ -601,6 +601,12 @@ class ParticleGraph(object): ...@@ -601,6 +601,12 @@ class ParticleGraph(object):
charge_map = {} charge_map = {}
for elem in soap.soapy.elements.PeriodicTable.element_names: for elem in soap.soapy.elements.PeriodicTable.element_names:
charge_map[elem] = 1. charge_map[elem] = 1.
elif density_type == "number_density_generic":
charge_map = {}
for elem in soap.soapy.elements.PeriodicTable.element_names:
charge_map[elem] = 1.
elif density_type == "valence_charge_density":
charge_map = soap.soapy.elements.periodic_table.getPropertyDict("valence")
else: else:
raise NotImplementedError("Density type '%s'" % density_type) raise NotImplementedError("Density type '%s'" % density_type)
# ... Apply # ... Apply
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment