4surix / atomion Goto Github PK
View Code? Open in Web Editor NEWManipuler des concepts physiques/chimiques (atomes, ions, équations, ...) facilement.
Manipuler des concepts physiques/chimiques (atomes, ions, équations, ...) facilement.
Actuellement, si nous comparons un proton et un ion hydrogène (Proton() == Ion('{H+}')
) cela renvoie False
.
Cela est dû à la méthode spéciale de l'égalité __eq__
qui compare la représentation des objets, donc comme un proton et un ion ne se note pas pareil la comparaison renvoie faux.
def __eq__(self, obj: Any) -> bool:
return repr(self) == repr(obj)
Je ne sais pas si il faut laisser ou corriger cela.
Techniquement un ion hydrogène est un proton, vu que si on enlève l'électron de l'hydrogène il ne reste que le proton; cependant est ce que c'est vraiment identique ?
Soit l'égalité compare dorénavant le nombre de proton d'un objet.
def __eq__(self, obj: Any) -> bool:
return self.proton == obj.proton
Soit on compare seulement le nombre de proton dés qu'un proton et un ion sont comparés entre eux.
def __eq__(self, obj: Any) -> bool:
if isinstance(obj, Proton) and isinstance(obj, Ion):
return self.proton == obj.proton
else:
return return repr(self) == repr(obj)
Actuellement dans atomion
, le regroupement d’espèces le plus complexe que nous pouvons faire sont les molécules.
Cependant il existe d'autre regroupement davantage complexe comme les solutions.
Je pense qu'il serait donc intéressant de rajouter un objet Solution
dans le but de simuler différent type de solution avec les différentes espèces qu'elle peut contenir.
L'objet contiendrait dans un dictionnaire les différentes espèces présentes sous la forme : {espèce: quantités}
.
L'espèce sera un objet et la quantité sera un entier qui correspondra combien de fois cette espèce est présente.
Plusieurs propriétés peut être définie, par exemple pH
pour savoir le pH de la solution.
Un objet SolutionAqueuse
permettra de créer une solution avec comme soluté de l'eau distillé directement.
from atomion import *
solution = Solution({
Molecule("H-C(=O)OH"): 10*mol, # 180ml d'acide formique
Molecule("SiO2"): 1*mol
})
aq = SolutionAqueuse(ml=1000)
solution = aq({
Molecule("NaCl"): 2*mol # 114g de sel
})
aq = SolutionAqueuse(ml=1000)
solution = aq({
Molecule("NH3"): 1*mol
})
solution.pH == 9.25
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.