NTNUJAVA Virtual Physics Laboratory
Enjoy the fun of physics with simulations!
Backup site http://enjoy.phy.ntnu.edu.tw/ntnujava/
November 18, 2017, 01:12:25 pm *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Login Register  
"The mind is its own place, and in itself, can make heaven of Hell, and a hell of Heaven." ..."John Milton(1608-1674, English Poet)"
Google Bookmarks Yahoo My Web MSN Live Netscape Del.icio.us FURL Stumble Upon Delirious Ask FaceBook

Pages: [1]   Go Down
  Print  
Author Topic: engineer student  (Read 13322 times)
0 Members and 1 Guest are viewing this topic. Click to toggle author information(expand message area).
alvaro
Newbie
*
Offline Offline

Posts: 1

«
Embed this message
on: November 15, 2006, 05:30:52 pm »

Hello Sir,
I am very interested in your developments. I am looking for some code to show me how to programme an
applet of Henon-Heiles. Of course I will never copy it, it would be only a reference for me. I would be very
happy if it was possible.

Thank you very much

Logged
robert07
Newbie
*
Offline Offline

Posts: 6


«
Embed this message
Reply #1 on: April 13, 2013, 11:56:25 am » posted from:,,Satellite Provider

 Thanks for asking your frequent question. I am giving you a sample of how to programme an applet of Henon-Heiles? Bellow I the example are a example.Hope that you will be get a benifit from it

Section 1
/* C: osc.c = solve anharmonic oscillator equation */
#include
#include
#define dt (0.01)
#define omega2 (1.0)
#define beta (0.4)
double f(double x){
  return (-omega2*x-beta*pow(x,3));
}
void lf2(double x,double p,double *xn,double *pn,double h){
  double ph;
  ph=p+(h/2)*f(x);
  *xn=x+h*ph; *pn=ph+(h/2)*f(*xn);
}
void rk4(double x,double p,double *xn,double *pn,double h){
  double x1,x2,x3,x4,p1,p2,p3,p4;
  x1=h*p; p1=h*f(x);
  x2=h*(p+p1/2); p2=h*f(x+x1/2);
  x3=h*(p+p2/2); p3=h*f(x+x2/2);
  x4=h*(p+p3); p4=h*f(x+x3);
  *xn=x+(x1+2*x2+2*x3+x4)/6; *pn=p+(p1+2*p2+2*p3+p4)/6;
}
int main(){
  double x, p, xn, pn, energy;
  double d, d1, d2;
  int solver, n, max=800;
  FILE *fp;
/* 4th order yoshida parameters */
  d=pow(2,1.0/3.0);
  d1=1/(2-d); d2=-d/(2-d);
  /* choice of scheme */
  printf("Which algorithm? (1:Runge-Kutta,2:Leap Frog,3:Yoshida)");
  scanf("%d",&solver);
/* initial condition */
  x=2.0; p=0.0;
  energy=p*p/2+omega2*x*x/2+beta*pow(x,4)/4;
  printf("First energy=%10.6f Â¥n",energy);
/* file open */
  switch(solver){
  case 1:
   fp=fopen("rk4.dat","w"); break;
  case 2:
   fp=fopen("lf2.dat","w"); break;
  case 3:
   fp=fopen("ys4.dat","w"); break;
  }
  fprintf(fp,"%10.7f %10.7fÂ¥n",x,p);
/* time development */
  for(n=1; n   switch(solver){
   case 1:/* Runge-Kutta */
   rk4(x,p,&xn,&pn,dt);
    x=xn; p=pn; break;
   case 2:/* Leap Flog */
    lf2(x,p,&xn,&pn,dt);
   x=xn; p=pn; break;
   case 3:/* Yoshida */
   lf2(x,p,&xn,&pn,dt*d1);
   x=xn; p=pn;
    lf2(x,p,&xn,&pn,dt*d2);
    x=xn; p=pn;
    lf2(x,p,&xn,&pn,dt*d1);
    x=xn; p=pn; break;
   }
/* write data */
   fprintf(fp,"%10.7f %10.7fÂ¥n",x,p);
  }/* end of time development */
  fclose(fp);
/* check of the energy conservation */
  energy=p*p/2+omega2*x*x/2+beta*pow(x,4)/4;
  printf("Final energy=%10.6f Â¥n",energy);
/* end */
  return 0;
}


Section 2
/* Java: henon.java = Applet program with henon.html:


Henon-Heiles system




   code=henon.class
      width=700 height=600>





*/
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class henon extends Applet implements ActionListener, ItemListener,
MouseListener{
  CheckboxGroup cbg=new CheckboxGroup();
  TextField tf=new TextField(15);
  Button btn1, btn2, btn3;
  Image img;
  Graphics bg;
  String msg;
  protected int width, height, ON=1, OFF=0;
  protected int xc=350, yc=350, scale=500;
  int SW, mx, my;
// variables
  int count, max=1000000;
  double dt=0.001, t, dd;
  double x1, x2, p1, p2, energy;
  double sx, sy;
  double[][] PS=new double[1000][2];// PoincarÂ¥'e section
  public void init(){
  // canvas
   width=getSize().width; height=getSize().height;
   img=this.createImage(width,height);
   setBackground(Color.white);
   bg=img.getGraphics();
   resetDisplay();
  // items
   Checkbox cb1=new Checkbox("E=1/12",false,cbg);
   Checkbox cb2=new Checkbox("E=1/8",false,cbg);
   Checkbox cb3=new Checkbox("E=1/6",false,cbg);
   add(cb1); cb1.addItemListener(this);
   add(cb2); cb2.addItemListener(this);
   add(cb3); cb3.addItemListener(this);
   add(tf);
   btn1=new Button("START");
   btn2=new Button("STOP");
   btn3=new Button("CLEAR");
   add(btn1); btn1.addActionListener(this);
   add(btn2); btn2.addActionListener(this);
   add(btn3); btn3.addActionListener(this);
   addMouseListener(this);
  }
  public void resetDisplay(){
   bg.clearRect(0,60,width,height);
   bg.setColor(Color.black);
   bg.drawLine(40,yc,width-40,yc);
   bg.drawLine(xc,130,xc,height-30);
   bg.drawImage(img,0,0,this);
   repaint();
  }
  public void itemStateChanged(ItemEvent ie){
   String str=((Checkbox) ie.getItemSelectable()).getLabel();
   if(str=="E=1/12"){
   energy=1.0/12.0; t=0.0;
   }else if(str=="E=1/8"){
   energy=1.0/8.0; t=0.0;
   }else if(str=="E=1/6"){
   energy=1.0/6.0; t=0.0;
   }
  }
  public void actionPerformed(ActionEvent ae){
   if(ae.getSource()==btn1){// START
   SW=ON; calc();
   }else if(ae.getSource()==btn2){// STOP
   SW=OFF;
   }else if(ae.getSource()==btn3){// CLEAR
   SW=OFF;
   for(int i=0; i<1000; i++){
   PS[0]=0.0; PS[1]=0.0;
   }
   resetDisplay();
   }
  }
  public void mousePressed(MouseEvent me){
   mx=me.getX( ); my=me.getY( );
   if(my<100){
   return;// out of bounds
   }else{
   x1=0.0;
   x2=(double)(mx-xc)/(double)scale;
   p2=(double)(my-yc)/(double)scale;
   dd=2*energy-p2*p2-2*V(x1,x2);
   if(dd>0){
   p1=Math.sqrt(dd);
   tf.setText("x2="+x2+", p2="+p2);
   SW=ON;
   }else{
   tf.setText("No Good, Try again!");
   }
   }
  }
  public void mouseClicked(MouseEvent evt){ }
  public void mouseReleased(MouseEvent evt){ }
  public void mouseEntered(MouseEvent evt){ }
  public void mouseExited(MouseEvent evt){ }
  public void paint(Graphics g){
   int vx, vy;
   bg.setColor(Color.red);
   for(int i=0; i<1000; i++){
   vx=xc+(int)(scale*PS[0]); vy=yc+(int)(scale*PS[1]);
   bg.drawRect(vx,vy,1,1);
   }
   g.drawImage(img,0,0,this);
  }
// potential energy
  public double V(double x1, double x2){
   return ((x1*x1+x2*x2)/2+x1*x1*x2-x2*x2*x2/3);
  }
// right hand sides
  public double f1(double x1, double x2, double p1, double p2){
   return (p1);
  }
  public double f2(double x1, double x2, double p1, double p2){
   return (p2);
  }
  public double f3(double x1, double x2, double p1, double p2){
   return (-x1-2*x1*x2);
  }
  public double f4(double x1, double x2, double p1, double p2){
   return (-x2-x1*x1+x2*x2);
  }
// for use of Poincar¥'e section
  public double g1(double x1, double x2, double p1, double p2){
   return (1/p1);
  }
  public double g2(double x1, double x2, double p1, double p2){
   return (p2/p1);
  }
  public double g3(double x1, double x2, double p1, double p2){
   return ((-x1-2*x1*x2)/p1);
  }
  public double g4(double x1, double x2, double p1, double p2){
   return ((-x2-x1*x1+x2*x2)/p1);
  }
  public void calc(){
   double x1_1, x1_2, x1_3, x1_4, x1n;
   double x2_1, x2_2, x2_3, x2_4, x2n;
   double p1_1, p1_2, p1_3, p1_4, p1n;
   double p2_1, p2_2, p2_3, p2_4, p2n;
   double dx, t_1, t_2, t_3, t_4;
   if(SW==ON){
   count=0;
   for(int i=0; i   x1_1=dt*f1(x1,x2,p1,p2);
   x2_1=dt*f2(x1,x2,p1,p2);
   p1_1=dt*f3(x1,x2,p1,p2);
   p2_1=dt*f4(x1,x2,p1,p2);
   x1_2=dt*f1(x1+x1_1/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   x2_2=dt*f2(x1+x1_1/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   p1_2=dt*f3(x1+x1_1/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   p2_2=dt*f4(x1+x1_1/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   x1_3=dt*f1(x1+x1_2/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   x2_3=dt*f2(x1+x1_2/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   p1_3=dt*f3(x1+x1_2/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   p2_3=dt*f4(x1+x1_2/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   x1_4=dt*f1(x1+x1_3,x2+x2_3,p1+p1_3,p2+p2_3);
   x2_4=dt*f2(x1+x1_3,x2+x2_3,p1+p1_3,p2+p2_3);
   p1_4=dt*f3(x1+x1_3,x2+x2_3,p1+p1_3,p2+p2_3);
   p2_4=dt*f4(x1+x1_3,x2+x2_3,p1+p1_3,p2+p2_3);
   x1n=x1+(x1_1+2*x1_2+2*x1_3+x1_4)/6;
   x2n=x2+(x2_1+2*x2_2+2*x2_3+x2_4)/6;
   p1n=p1+(p1_1+2*p1_2+2*p1_3+p1_4)/6;
   p2n=p2+(p2_1+2*p2_2+2*p2_3+p2_4)/6;
   if((x1<0)&&(x1n>0)){ /* PoincarÂ¥'e section at x1=0 */
   dx=-x1;
   t_1=dx*g1(x1,x2,p1,p2);
   x2_1=dx*g2(x1,x2,p1,p2);
   p1_1=dx*g3(x1,x2,p1,p2);
   p2_1=dx*g4(x1,x2,p1,p2);
   t_2=dx*g1(x1+dx/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   x2_2=dx*g2(x1+dx/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   p1_2=dx*g3(x1+dx/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   p2_2=dx*g4(x1+dx/2,x2+x2_1/2,p1+p1_1/2,p2+p2_1/2);
   t_3=dx*g1(x1+dx/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   x2_3=dx*g2(x1+dx/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   p1_3=dx*g3(x1+dx/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   p2_3=dx*g4(x1+dx/2,x2+x2_2/2,p1+p1_2/2,p2+p2_2/2);
   t_4=dx*g1(x1+dx,x2+x2_3,p1+p1_3,p2+p2_3);
   x2_4=dx*g2(x1+dx,x2+x2_3,p1+p1_3,p2+p2_3);
   p1_4=dx*g3(x1+dx,x2+x2_3,p1+p1_3,p2+p2_3);
   p2_4=dx*g4(x1+dx,x2+x2_3,p1+p1_3,p2+p2_3);
   t+=(t_1+2*t_2+2*t_3+t_4)/6;
   x1n=0.0;
   x2n=x2+(x2_1+2*x2_2+2*x2_3+x2_4)/6;
   p1n=p1+(p1_1+2*p1_2+2*p1_3+p1_4)/6;
   p2n=p2+(p2_1+2*p2_2+2*p2_3+p2_4)/6;
   PS[count][0]=x2n; PS[count][1]=p2n; count+=1;
   repaint();
   }else{
   t+=dt;
   }
   x1=x1n; x2=x2n; p1=p1n; p2=p2n;
   }
   }
  }
}


Section 3
# Perl: kdv.pl = KdV equation according to Zabusky-Kruskal scheme
use Tk;
WIDTH=800;HEIGHT=600;
mw=MainWindow->new();mw->title("KdV");
canvas=mw->Canvas(width=>WIDTH,height=>HEIGHT)->pack();
sub init{
# constants
  PI=4*atan2(1,1);
  N=200; h=2.0/N; dt=0.0001;
  delta=0.022; c_uux=dt/(3*h);c_uxxx=(delta**2)*dt/(h**3);
# initial condition
  for(j=0;j<=(N+4);j++){
   x=h*(j-2);
   uold[j]=cos(PI*x); u[j]=uold[j];
  }
# start
  canvas->after(10,Â¥&run);
}
sub run{
# display
  canvas->delete('tag');
  for(j=2;j<=(N+2);j++){
   xx=100+3*j; yy=400-u[j]*100;
   canvas->createOval(xx,yy,xx,yy,-tags=>'tag');
  }
# computations
  for (1..40) {
   for(j=2;j<=(N+2);j++){
   uux=c_uux*(u[j+1]+u[j]+u[j-1])*(u[j+1]-u[j-1]);
   uxxx=c_uxxx*(u[j+2]-2*u[j+1]+2*u[j-1]-u[j-2]);
   unew[j]=uold[j]-uux-uxxx;
   }
  # periodic boundary condition
   u[0]=u[N];u[1]=u[N+1];u[N+3]=u[3];u[N+4]=u[4];
   unew[0]=unew[N];unew[1]=unew[N+1];
   unew[N+3]=unew[3];unew[N+4]=unew[4];
  # renewal
   for(j=0;j<=(N+4);j++){
   uold[j]=u[j]; u[j]=unew[j];
   }
  }
  $canvas->after(1, Â¥&run);
}
init();
MainLoop;


Section 4
# Python: BZ.py = 2dim. BZ reaction-diffusion equation
import Tkinter
import time
from numpy import *
from math import *
# canvas
WIDTH=520
HEIGHT=450
canvas=Tkinter.Canvas(width=WIDTH,height=HEIGHT,bg='white')
canvas.pack()
# model N x M: PBC
N, M=30, 60
# parameters
pi=4*atan(1.0)
dt, h=0.01, 0.1
h2=h*h
DX, DY=0.0001, 0.0001
A, B=1.0, 3.0
maxX, maxY=0.0, 0.0
minX, minY=6.0, 6.0
# preparation
X=zeros([N+2, M+2],float)
Y=zeros([N+2, M+2],float)
XX=zeros([N+2, M+2],float)
YY=zeros([N+2, M+2],float)
rhsX=zeros([N+2, M+2],float)
rhsY=zeros([N+2, M+2],float)
for j in range(N+2):
  for k in range(M+2):
   s, t=pi*j/N, pi*k/M
   X[j][k]=2.0+0.4*sin(s)*sin(3*t)
   Y[j][k]=1.0+0.4*sin(s)*sin(t)
diagX, offX=1-4*DX*dt/h2, DX*dt/h2
diagY, offY=1-4*DY*dt/h2, DY*dt/h2
# nonlinear reaction terms
def SX(u,v):
  return (A-(B+1)*u+u*u*v)
def SY(u,v):
  return (B*u-u*u*v)
# coloring
def floatRgb(mag, cmin, cmax):
  try:
  # normalize to [0,1]
   x = float(mag-cmin)/float(cmax-cmin)
  except:
  # cmax = cmin
   x=0.5
  blue = min((max((4*(0.75-x), 0.)), 1.))
  red = min((max((4*(x-0.25), 0.)), 1.))
  green= min((max((4*math.fabs(x-0.5)-1., 0.)), 1.))
  return (red, green, blue)
def strRgb(mag, cmin, cmax):
  red, green, blue = floatRgb(mag, cmin, cmax)
  return "#%02x%02x%02x" % (red*255, green*255, blue*255)
# main
def run():
  global X, XX, Y, YY, rhsX, rhsY, maxX, maxY, minX, minY
  canvas.delete(Tkinter.ALL)
  # show color table
  for j in range (256):
   color=strRgb(float(j), 0.0, 256.0)
   canvas.create_rectangle(j+140-6,HEIGHT-40-3,j+140+6,HEIGHT-20+3,
   width=0,fill=color)
  # find maxX, maxY, minX, minY
  for j in range(1, N+1):
   for k in range(1, M+1):
   if maxX   maxX=X[j][k]
   if maxY   maxY=Y[j][k]
   if minX>X[j][k]:
   minX=X[j][k]
   if minY>Y[j][k]:
   minY=Y[j][k]
  # display
  for j in range(1, N+1):
   for k in range(1, M+1):
   x, y=6*(j-1), 20+6*(k-1)
   # coloring
   color=strRgb(X[j][k], minX, maxX)
   canvas.create_rectangle(x+50-3,y-3,x+50+3,y+3,width=0,fill=color)
   color=strRgb(Y[j][k], minY, maxY)
   canvas.create_rectangle(x+300-3,y-3,x+300+3,y+3,width=0,fill=color)
  # run 10 times
  for i in range(5):
   for j in range(1, N+1):
   for k in range(1, M+1):
   rhsX[j][k]=dt*SX(X[j][k], Y[j][k])
   rhsY[j][k]=dt*SY(X[j][k], Y[j][k])
   rhsX[j][k]+=offX*(X[j+1][k]+X[j-1][k]+X[j][k-1]+X[j][k+1])+diagX*X[j][k]
   rhsY[j][k]+=offY*(Y[j+1][k]+Y[j-1][k]+Y[j][k-1]+Y[j][k+1])+diagY*Y[j][k]
   XX[j][k], YY[j][k]=rhsX[j][k], rhsY[j][k]
   for j in range(0, N+2):
   XX[j][0], XX[j][M+1]=XX[j][M], XX[j][1]
   YY[j][0], YY[j][M+1]=YY[j][M], YY[j][1]
   for k in range(0, M+2):
   XX[0][k], XX[N+1][k]=XX[N][k], XX[1][k]
   YY[0][k], YY[N+1][k]=YY[N][k], YY[1][k]
   # rename
   X, Y=XX, YY
  canvas.after(1, run)
run()
canvas.mainloop()

Still if you have any question please post here.
Thanks
Logged
robert07
Newbie
*
Offline Offline

Posts: 6


«
Embed this message
Reply #2 on: April 16, 2013, 04:51:23 pm » posted from:Dhaka,Dhaka,Bangladesh

Hey you like my post and is this post help you???Please tell me I am waiting for your reply. If you like the more I will be share more like this post..I want to learn about social media marketing plan -*- if anyone can help me??? I want to know what is about it???
Logged
robert07
Newbie
*
Offline Offline

Posts: 6


«
Embed this message
Reply #3 on: April 24, 2013, 04:48:37 pm » posted from:Dhaka,Dhaka,Bangladesh

Guys please help me soon. I am in trouble now to learn about AutoCAD because my teacher gives me a lot of homework. So please help me.... .
Logged
garymauricio
watchlist
Newbie
*
Offline Offline

Posts: 5

«
Embed this message
Reply #4 on: February 14, 2015, 12:03:42 pm » posted from:,,Satellite Provider

Hey you like my post and is this post help you???Please tell me I am waiting for your reply. If you like the more I will be share more like this post..I want to learn about social media marketing plan -*- if anyone can help me??? I want to know what is about it???

yes guys useful information. I need more codes from you. So informative thank you so much you guys have done a great job. I want to learn lot of information from your site. AutoCAD is used across a wide range of industries, by architects, project managers, engineers, designers, and other professionals. It is supported by 750 training centres worldwide as of 1994. AutoCAD is a commercial software application fro 2D and 3D computer aided design and drafting.-*-
Logged
theengi1
Newbie
*
Offline Offline

Posts: 1

«
Embed this message
Reply #5 on: September 14, 2017, 05:13:22 pm »

This is something I highly recommend you to learn
Quote
JAVA BY Example
http://discoutdeals.com/store/udemy/java-by-example/
Logged
Pages: [1]   Go Up
  Print  
"The mind is its own place, and in itself, can make heaven of Hell, and a hell of Heaven." ..."John Milton(1608-1674, English Poet)"
 
Jump to:  


Related Topics
Subject Started by Replies Views Last post
module in Ejs that allow student to initiative inquiry of variables on the plot?
Questions related to EJS
lookang 2 4167 Last post April 09, 2010, 07:52:43 pm
by lookang
Engineer student
Information and Download
robert07 3 2475 Last post January 19, 2016, 04:22:53 pm
by nezhawolter
student/board:29-100-
Question related to Physics or physics related simulation
Memory 0 771 Last post April 19, 2014, 02:07:20 pm
by Memory
Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006-2011, Simple Machines LLC Valid XHTML 1.0! Valid CSS!
Page created in 4.016 seconds with 23 queries.since 2011/06/15