Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
ΚΕΦΑΛΑΙΟ 6 ο<br />
{<br />
for (int y = 0; y < yCount - 1; y++)<br />
{<br />
Particle p = new Particle((Integer) theParticles.getNextUserDataForParticle(),<br />
((x - xCoef)) * xSpacing + xSpacing / 2, ((y - yCoef)) * ySpacing + ySpacing / 2, zIndex);<br />
p.setMass(m);<br />
theParticles.addParticle(p);<br />
}<br />
}<br />
}<br />
}<br />
Εδώ τοποθετούνται τα σωµατίδια στις θέσεις τους στον BCC κρύσταλλο. Αντίστοιχη<br />
συνάρτηση υπάρχει και για FCC κρύσταλλο, στην περίπτωση που απαιτείται από το είδος και<br />
τον στόχο της προσοµοίωσης.<br />
Επιπλέον, µετά την αρχικοποίηση του κρυστάλλου, υπολογίζονται τα όρια για τις συνοριακές<br />
συνθήκες:<br />
private void calculateBoundaries()<br />
{<br />
xBoundaryStart = -(xSpacing * numberOfxEdgeParticles) / 2;<br />
xBoundaryEnd = +(xSpacing * numberOfxEdgeParticles) / 2;<br />
xBoundarySize = xSpacing * numberOfxEdgeParticles;<br />
}<br />
yBoundaryStart = -(ySpacing * numberOfyEdgeParticles) / 2;<br />
yBoundaryEnd = (ySpacing * numberOfyEdgeParticles) / 2;<br />
yBoundarySize = ySpacing * numberOfyEdgeParticles;<br />
zBoundaryStart = 0;<br />
zBoundaryEnd = zSpacing * numberOfzEdgeParticles;<br />
zBoundarySize = zSpacing * numberOfzEdgeParticles;<br />
Παρακάτω φαίνονται οι συναρτήσεις που υλοποιούν τα boundary conditions για κάθε άξονα<br />
και επιστρέφουν την καινούρια συντεταγµένη στην οποία πρέπει να τοποθετηθεί το<br />
σωµατίδιο.<br />
public double xBoundary(double x)<br />
{<br />
double result = x;<br />
if (x < xBoundaryStart)<br />
{<br />
result = xBoundaryEnd - ((Math.abs(xBoundaryStart - x)) % xBoundarySize);<br />
241