m6
This commit is contained in:
80
tests/AtomSoupTest.cs
Normal file
80
tests/AtomSoupTest.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using VirtualChemistry.Chemistry.Atoms.Implements;
|
||||
using VirtualChemistry.Chemistry.Atoms.Resolver;
|
||||
using VirtualChemistry.Chemistry.Compounds.Implements;
|
||||
using VirtualChemistry.Chemistry.Containers;
|
||||
using VirtualChemistry.Chemistry.Mixtures.Implements;
|
||||
using VirtualChemistry.Constants;
|
||||
|
||||
namespace VirtualChemistryTest;
|
||||
|
||||
public static class AtomSoupTest
|
||||
{
|
||||
private static BaseAtom[] AllAtoms() =>
|
||||
ChemistryConstant.ElementSymbols.Select(AtomResolver.Resolve).ToArray();
|
||||
private class Container : IChemicalContainer
|
||||
{
|
||||
public Container(HeterogeneousMixture h) => Content = h;
|
||||
public double Volume() => 200;
|
||||
public HeterogeneousMixture Content { get; set; }
|
||||
public double EnvironmentPressure { get; set; }
|
||||
public double EnvironmentTemperature { get; set; }
|
||||
}
|
||||
[Test]
|
||||
public static void AtomSoupTest1()
|
||||
{
|
||||
HeterogeneousMixture h = new ();
|
||||
h.Container = new Container(h);
|
||||
HomogeneousMixture m = new();
|
||||
h.AddLayer(m);
|
||||
foreach (BaseAtom a in AllAtoms())
|
||||
{
|
||||
Compound c = a.GrabCompound;
|
||||
a.Compound = c;
|
||||
c.Amount = 1;
|
||||
m.AddCompound(c);
|
||||
}
|
||||
m.Volume = m.FreeVolume;
|
||||
h.Container.EnvironmentTemperature = 4.4;
|
||||
for (int i = 1; i < 50; i++)
|
||||
h.OneStep();
|
||||
Console.WriteLine($"{h.Layers.Count} {h.Layers.Sum(x => x.Volume)} --- {h.FreeVolume}");
|
||||
foreach (HomogeneousMixture mx in h.Layers)
|
||||
{
|
||||
Console.WriteLine($"{mx.Temperature} ====={mx.FreeVolume}==={mx.Density}={mx.Volume}={mx.CompressionStiffness}");
|
||||
foreach (Compound cx in mx.Compounds)
|
||||
{
|
||||
var b = cx.Atoms.First().NextUnconnected("m");
|
||||
Console.WriteLine($"{cx.Expression}\t\tAMT:{cx.Amount}\t\tRes:{mx.Resolvability(cx)}\t\tE:{b.Energy}");
|
||||
}
|
||||
}
|
||||
m.RPC();
|
||||
}
|
||||
[Test]
|
||||
public static void SoTest1()
|
||||
{
|
||||
HeterogeneousMixture h = new ();
|
||||
h.Container = new Container(h);
|
||||
HomogeneousMixture m = new();
|
||||
h.AddLayer(m);
|
||||
BaseAtom a = new SoAtom();
|
||||
a.C();
|
||||
Compound c = a.GrabCompound;
|
||||
a.Compound = c;
|
||||
c.Amount = 1;
|
||||
m.AddCompound(c);
|
||||
m.Volume = m.FreeVolume;
|
||||
h.Container.EnvironmentTemperature = 2.4;
|
||||
h.OneStep();
|
||||
foreach (HomogeneousMixture mx in h.Layers)
|
||||
{
|
||||
Console.WriteLine($"{mx.Temperature} ===================");
|
||||
foreach (Compound cx in mx.Compounds)
|
||||
{
|
||||
var b = cx.Atoms.First().NextUnconnected("m");
|
||||
Console.WriteLine($"{cx.Expression}\t\tAMT:{cx.Amount}\t\tRes:{mx.Resolvability(cx)}\t\tE:{b.Energy}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user