Von Java ins Fortran übersetzen
-
hallo erstmal,
ich bin eine maschinenbaustudentin und müßte ein FDM-Code zu einem Diffusionsvorgang schreiben.
Hierzu habe ich erstmal einfachere java-programme geschrieben.
müßte aber das ganze ins fortran übersetzen, habe leider davon nicht so viel ahnung!ich hoffe sehr, daß es jemand unter euch gibt, der mir helfen kann!!
mein java-programm, was ins fortran übersetzt werden müßte wäre:
import java.text.*; class Diffusion { public static void main( String args[ ] ) {double u[ ],uneu[ ]; int nx; int nt; double xanfang,xende; double tanfang,tende; double ua,ue; double faktor; double dx,dt,t; // Hilfsvariablen int i,j,k; double hilf,x,y,dudt; String sy; NumberFormat def = NumberFormat.getInstance( ); def.setMaximumFractionDigits(3); def.setMinimumFractionDigits(3); // Werte belegen: ua=0; ue=1; nx=20; nt=10000; xanfang=0.0; xende=1.0; tanfang=0; tende=10; faktor=1; dx=(xende-xanfang)/nx; dt=(tende-tanfang)/nt; u=new double[nx+1]; uneu=new double[nx+1]; // Zu Randbedingungen kompatible Anfangsfunktion for(i=0; i<=nx;i++) { x=xanfang+i*dx; y=x*x*x; u[i]=y; } // 1. Testausdruck for( k=0; k <=nx; k++ ) { sy=def.format(u[k]); System.out.print(sy+" "); } System.out.println(""); // Zeitschleife for(i=1; i <= nt; i++ ) { for(j=1; j < nx; j++ ) { dudt=(u[j+1]-2*u[j]+u[j-1])/dx/dx*faktor; uneu[j]=u[j]+dudt*dt; } if( i % 100 == 0 ) // Ausdruck; { t=tanfang+i*dt; System.out.println(" t = "+t); for( k=0; k <=nx; k++ ) { sy=def.format(u[k]); System.out.print(sy+" "); } System.out.println(""); } // Umspeichern for( k=1; k < nx; k++ ) u[k]=uneu[k]; } } }
ich wäre für jeden konstruktiven Beitrag vom Herzen dankbar.
liebe Grüße
Frühling
-
Dein Problem ist nicht der Algorithmus sondern Fortran selbst. Alle die Dinge, die du in Java gemacht hast sind so auch in ähnlicher Weise in Fortran möglich. Leider bist du hier im falschen Forum ...
-
Dieser Thread wurde von Moderator/in CengizS aus dem Forum Java in das Forum Rund um die Programmierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
1. welches Fortran willst du haben? Gibt ja unterschiedliche (zT. inkompatible) Versionen
2. ist das nicht sehr schwierig, da du ja nur mathematische Methoden benutze. Beschreib deine Probleme genauer, dann kann man dir auch helfen. hf
3. kann ich dir das gerne umwandeln, wieviel willst du zahlen?
-
guten morgen kingruedi,
möchte mal auf deine fragen eingehen,
das ganze soll ins fortran 90 übersetzt werden.
soll mithilfe von finite differenzen methode ein code erstellen.
Hierbei geht es um die Fick´schen Gesetze (genauer 2.) Daraus resultiert eine partielle Differenzialgleichung und diese Gleichung kann man explizit (einfacher) und implizit (schwieriger) berechnen. Ich habe in diesem Programm erstmal einfachere Formel genommen.
mir wurde gesagt, daß man dies 1 zu 1 übersetzen kann, ohne viel vom Inhalt "verstehen" muß. Ich wüßte jetzt nicht was ich noch dazu erklären sollte.
wäre wunderbar, wenn du helfen könntest. und was die Bezahlung angeht, da überlegen wir uns noch was
viele grüße
Frühlingkingruedi schrieb:
1. welches Fortran willst du haben? Gibt ja unterschiedliche (zT. inkompatible) Versionen
2. ist das nicht sehr schwierig, da du ja nur mathematische Methoden benutze. Beschreib deine Probleme genauer, dann kann man dir auch helfen. hf
3. kann ich dir das gerne umwandeln, wieviel willst du zahlen?