An die Chemiker....Und Programmierer
-
HI
Aha, ich hab keine Ahnung wovon ich rede ?
Hmmm das is interressant.
Wieso soll es nicht möglich sein, wenn auch für ein eigeschränktes Gebiet, solche Aussagen zu treffen. Was machen den die Leute bei der Synthese ?
Die kippen auch nich einfach irgendwas innen Reaktor. Und gucken ma ob das was wird.Es gibt also durchaus Aussagen die man treffen kann.
Es ist schon klar das es schwierig wird(und der Begriff ist jetz nur dir zu Liebe gewählt worden) gleichzeitig Ort und Impuls eins Teilchens wie dem Elektron beliebig genau zu bestimmen. Ich glaube, ich weis nich genau wie das heisst, weil ich ja keine Ahnung hab, warte, ich glaube Unschärfe.
Aja das hast du ja auch schon geschrieben. Man was denkst du eigentlich ?Ich setz mich hin und hab keinen Plan von der Materie oder was ?
Es gibt zum Glück ein zwei Leute in meiner Umgebung die mich dahin gehend motivieren ruhig an dem Problem zu arbeiten.Ich halte es für eine Herausforderung und fühle mich von dieser angezogen.
Und ich werde nicht, ich wiederhole, ich werde nicht damit aufören weil ein Herr Dipl. BioChemiker daher kommt und sagt, es geht nicht.Es geht nicht darum diesen Microkosmus bis ins kleinste Detail darzustellen.
Das es Unschärfen gibt ist klar, na und! So lange ich das weiss ist das doch kein Problem. Man es gibt n Haufen gebiete bei denen das so ist. Und trotzdem können mit hoher wahrscheinlichkeit Aussagen gemacht werden.Wenn du meinst es fehlt mir an fachlicher Kompetenz dann kann ich damit leben, und dir eingeschrenkt zu stimmen, aber, und jetz stell deine Lauscher auf:
Es gibt ein paar Leute da draußen, die sich auskennen und die auch bereit sind Fragen zu beantworten, ohne gleich von einem Flame in den anderen zu geraten nur weil sie ein Diplom oder nen Doktortitel haben. Aber is schon ok.
Wenn ich das ma so sagen darf, ist es schon merkwürdig ausgerechnet das von nem Wissenschaftler zu hören.
Wenn es nur solche Leute gegeben hätte, würden man wahrscheinlich immer noch glauben das die Erde ne Scheibe ist, wir von einem mysteriösen Äther umgeben sind und Lichtgeschwindigkeit nur für Teilchen ohne Ruhemasse zu erreichen ist.
Uups letzteres stimmt ja. Na macht nix....So dann sag ich ma ... Tell it to the Hand Profi
-
OK! ... dann spring doch! ...
-
Original erstellt von Prof84:
OK! ... dann spring doch! ...Anstatt zu flamen (ja ich weiss wieviel Spaß es macht :D) könntest du ja vorschläge machen wo man am besten einschnitte machen könnte.
Fangen wir ganz einfach an:
Reaktionen verschiedener Stoffe. Grenzen wir die Stoffe vorerst ein. Nur die ersten 2 Perioden, nur die Hauptgruppen. Dann hast du 10 Stoffe. Nehmen wir weiterhin die noch unerforschten weg (glaube 7te Periode der 2te Teil) dann hat man nur ein paar Atome die sich von der Hauptgruppe unterscheiden. Für diese Hauptgruppen ein Regelwerk zu erstellen und die Atome dann den Hauptgruppen zuzuweisen dürfte doch nicht so schwert sein. Niemand verlangt eine Simulations der Orbital Elektronen, natürlich mit der Theorie von Tauchbahnen.Also, mach mal vorschläge oder gebe tipps, wie man deiner Meinung nach Redox Reaktionen etc simulieren könnte.
Ich dachte da (wie gesagt) an die verschiedenen Energie-Beträge. Ist die Energie von Cl groß genug um Li ein Elektron entreissen zu können? Wenn ja, entstehen 2 Ionen oder ein Molekül mit einem Bindeelektron etc...
ALso helf mit anstatt rumzuzicken
-
Original erstellt von Prof84:
OK! ... dann spring doch! ...Ähhhm was ?
@stealth00
danke dir für deine Vorschläge.
Aber ich werde jetz erstmal sehen wie ich allein zu Recht komme.(Das ist mit Absicht groß geschrieben)
Ich muss mich jetz erstmal mit der Materie richtig vertraut machen.
Ohman hoffentlich wird das was. Hab gehört wer dumm is, muss auch dumm sterben.
Trotzdem danke an alle die mit Vorschlägen dabei waren.
Ich lasse was von Fortschritten hören, so es welche gibt.[ Dieser Beitrag wurde am 24.06.2003 um 21:50 Uhr von prolog editiert. ]
-
und wenn probs gibt, auch melden. Ein paar Leute finden sich immer die dir helfen wollen
-
Also zunächst würde ich die wissenschaftliche Literatur per EDV-Recherche sichten. Dann kannst Du Dir vielleicht die Diplomarbeit beschaffen, von der ich Dir den Link gegeben habe (den Author einfach höflich anschreiben, vielleicht kann er Dir auch weitere Tipps geben).
Ich finde das Thema nicht uninteressant, aber man sollte es am Anfang auf ein ganz kleines Gebiet beschränken. Chemische Reaktionen sind durch Enthalpie und Entropie gesteuert. Du musst daher die gesamten Bindungsenergien eingeben. In der organischen Chemie hat man dann noch die ganzen I- und M-Effekte, sterische Effekte etc. Vierringe bilden sich z.B. sehr schwer. Denke auch mal an Polymerisation oder Katalyse. Das ist ein schwieriges Thema.
Eine grundsätzliche Lösung gibt es nicht, denn sonst müssten wir in unserer Firma nicht soviel Geld für "echte" chemische Forschung ausgeben. Ich weiß nur, dass Wirkstoffchemiker mit räumlichen Programmen arbeiten, um Moleküle nach sterischen Effekten (Schlüssel-Schloss-Prinzip) zu optimieren.
Das ist aber etwas anderes, als das, was Du willst.
Nehmen wir ein konkretes Beispiel, das das Programm lösen muss:
H2 + O2 --> ? Da könnte H2O, H2O2 und O3 resultieren. Das hängt ganz von den Bedingungen ab.oder: S + O2 <--> SO2 und SO2 + 1/2 O2 <--> SO3
Ich würde mit solch einfachen Beispielen beginnen.
-
Hi
@erhard
Ich werde das mit der Diplomarbeit angehen.
Ich hab ja bereits geschrieben dass, das ganze nur eingeschränkt funktioniert.
Das Problem mit den induktiven Effekten hab ich auch gesehen. Bin aber noch zu keiner zufriedenstellenden lösung gekommen. Ich denke ich werde mich auf einige wenige gut bekannte Reaktionsmechanismen beschränken(zunächst).
Und da gibt es zu mindest in der Organik schon ein paar Sachen die man machen kann. Es gibt ja zum Glück einige einfache Faustregeln für mesomerie effekte und induktive effekte und wie sie sich auswirken. Ich denke das kann ich für meine Zwecke ausreichend beachten.
Sehr viel schwieriger wird es bei der Sterik. Ich müsste zusätzlich Bindungslängen, Bindungswinkel und Atomradien beachten. Mal ganz angesehen davon das sich Moleküle in Bewegung befinden. Aber ich denke da helfen statistische Methoden weiter.Ich werde mich jetz erstmal um die Diplomarbeit kümmern, und mir dann um die Repräsentation gedanken machen.
Ich denke bei entsprechenden Parametern kann man gute Aussagen über die Reaktionen treffen. Ich mache das von Hand auch nicht anders.
Zum Glück gibt es riesige Tabellenbücher. Was mich zum Problem der Datenspeicherung bringt. Ich habe an xml oder Datenbanken gedacht. Was meint ihr ?
-
Original erstellt von prolog:
**@spieleprogrammierSo ähnlich ist meine Idee ja gewesen.
Ich hab nur das Problem das im Prinzip dem Programm gesagt werden muss wie es solche Verbindungen aufbaut. ;)**Na dann nimm eine Klasse, und lass dann die Eigenschaften vererben, zur Laufzeit meine ich, wäre zumindest am einfachsten.
Also:
class Atome { public: int p; int e; int n; } // [...] \\ class Wasserstoff::Atome.public //Vererbung? { public: string Name="Wasserstoff"; private: char Bezeichnung='H'; } // [...] \\ Wasserstoff.p=1; Wasserstoff.e=1; Wasserstoff.n=0;
[ Dieser Beitrag wurde am 25.06.2003 um 10:23 Uhr von Spieleprogrammierer editiert. ]
-
@Spieleprogrammierer: das ist hier ungeschickt. Wasserstoff erbt nicht von Atom! Wasserstoff ist eine Komposition von Atomen, d.h. enthält entsprechende Memberobjekte.
-
Naja, was weiß ich, dann formt ihr des halt um.
[ Dieser Beitrag wurde am 25.06.2003 um 14:20 Uhr von Spieleprogrammierer editiert. ]
-
Aus welcher Programmiersprache stammt dein Code ? :p
-
Meiner? -C++, kann sein, dass
class Wasserstoff::Atome.public
falsch ist, vielleicht wirds ja anders formuliert, hab ich noch nicht gemacht, aber ich weiß, dass das Vererbung ist.
-
Aus welcher Programmiersprache stammt dein Code
Pseudo.Gibts für soetwas eigentlich einen Compiler?
[ Dieser Beitrag wurde am 25.06.2003 um 14:50 Uhr von echter Troll editiert. ]
-
Hi
Also es wär mir neu das man zur Laufzeit vererben kann.
Nimm das jetz nicht als Flame.du meintest bestimmt.
class Abgeleitet : public Basisklasse
{
}
-
@Spieleprogrammier: Es ist echt kein Flame, soll eher flames von dir fernhalten. Poste nicht zu Themen bei denen du dir nicht sicher bist das du sie komplett verstanden hast. Und wenn du trotzdem helfen willst, dann schreib in Pseudo-Code (falls du diese Programmierkenntnisse noch nicht hast) oder schreib einfach dahinter das du keine Ahnung hast, aber das das deiner Meinung nach der beste Weg wäre.
Und noch ne kleine Frage, hast du schon Chemie?Ok, kleiner abstecher für dich, prolog will Reaktionen simulieren.
Das heisst er prellt ne bestimmte stoffmenge X, rein eine Bestimmte Menge Y und noch n andere Mengen.
Nehmen wir an er mischt, K(Kalium), H(Wasserstoff),O(Sauerstoff) und Cl(Clor)..
Dann muss das Programm schonmal wissen das Gase immer Bi-Atomar vorkommen.
Also:
K+H2+O2+Cl2
Jetzt überprüft das programm die verschiedenen Stats der Atome zu ermitteln!
Fangen wir mit Clor an. Wie du vielleicht weisst, hat Clor 7 Valenzelektronen und will aber 8 ve.
Also versucht es sich welche zu holen.
Es gibt also die Produkte HCl, KCl und vielleicht sogar O6CL (glaub nicht das das Molekül existiert. Aber vielleicht ja...)
Ok, jetzt sagen wir ist das komplette Cl aufgebraucht. Aber noch etwas O2,H2,und K ist da..
O2 reagiert mit H2 zu Wasser (H2O) oder zu Wasserperoxid(H2O2) und mit Kalium zu DiKalium-oxid (K2O) und vielleicht auch hier zu DiKaliumDiOxid(K2O2)
Das heisst eine mögliche Gleichung wäre:
K+H2+O2+Cl2 reagiert zu -> HCl + KCl + O6Cl + H2O2 + H2O + K2O + K2O2Und das muss man dem Programm rechnerisch beibringen. Es ist also ein ganz schön großes Problem.
-
Wasserstoff.p=1; // Proton
Wasserstoff.e=1; // Elektron
Wasserstoff.n=0; // NeutronIn der Form handelt es sich um ein einzelnes H-Atom. Daher ist Wasserstoff hier ein Atom.
Eine Komposition zweier H-Atome ergibt dann ein Wasserstoffmolekül.
Daher würde ich für erste Versuche eine Klasse Atom und eine Klasse Molekül schaffen. Die Klasse Atom sollte alle für die Chemie wichtigen Attribute haben, die ein Atom auszeichnet.
Wie stellst Du Dir die Klasse Molekül vor?
-
@stealth00: O6Cl ? junge, junge ..., da solltest Du noch einmal drüber nachdenken.
Bei der oben skizzierten Reaktion spielt die Elektronegativität eine große Rolle. Daher wird sich zunächst KCl unter "Feuererscheinung" bilden. Dabei verbrennt dann auch Wasserstoff mit Sauerstoff, wahrscheinlich explosionsartig (Knallgas). Aus Wasserstoff und Chlor entsteht Chlorwasserstoff, der dann mit dem gebildeten Wasser dissoziativ zu Salzsäure (ionisierter Chlorwasserstoff) reagiert. Lustige Reaktion.
-
HI
Okey, soweit war ich schon.
Ich hab bei einfachen Molekülen an ein Array bzw. an einen vector von Atomen
gedacht. Jetz ergibt sich nur bei der Bindung folgendes Problem.Bei einer kovalenten Bindung verändert sich das Attribut Elektronen dahingehend das entweder welche dazu kommen, oder aber abgegeben werden.
Sie werden aber nicht wirklich abgegeben. Es ist halt ein Mittelding.
Wie sage ich also dass,das Atom jetz nicht mehr (nehmen wir die Halogene)
7 Aussenelektronen besitz sondern 8. Aber das stimmt ja auch nur begrenzt.
Ich kann ja nicht formal jedem der beiden Reaktionspartner ein Elektron klauen bzw. schenken. Sie werden ja nicht komplett abgegeben. Damit hab ich noch schwierigkeiten. Ich hab da einen Ansatz aus der Fuzzylogik. Ich könnte einfach sagen, dass das besagte Atom mit Sicherheit 1.2 oder so 8e- hat.Bei Ionenbindungen zB.: ergibt sich eigentlich nur das Problem, dass man dann nicht mehr von Atomen sprechen kann, weil eben Ionen, also müssten die auch eingeführt werden.
Ein anderer Ansatz ist die Benutzung einer Klasse Molekülorbital, auf das jedes beteiligte Atom einen Zeiger bekommt, weils ja zu beiden gehört.
Also so waren bis jetz meine Ideen.
-
HI
Also ich hab hier mal nen ersten Entwurf für ne Atomklasse.
class MO; class Atom { protected: char bonds; char valenz; short e; mutable short p; mutable short n; mutable float en; //evtl. größe relativ oder absolut float masse; //evtl. Elektronenaffinität //evtl. Ionisierungsenthalpien //evtl. Elektronenkonfiguration MO *mo; public: Atom(short p,short e,short n,float en,float m,char v); ~Atom(); virtual bool Bind(Atom &); //hier bin ich mir nicht sicher //und member methoden folgen }; //Die versch. Atome werden abgeleitet
Das ist noch recht einfach gehalten.
-
Original erstellt von stealth00:
hast du schon Chemie?Kein Kommentar.
Edit: Bei Flames solltest du nochmal nachdenken, wer von uns die ganze zeit flames schreibt.
[ Dieser Beitrag wurde am 25.06.2003 um 22:55 Uhr von Spieleprogrammierer editiert. ]