Friday, May 6, 2016

Piston Free Expansion Oscillation.

The result of daydreaming, :)

#code
from visual import *
from random import uniform,random
from visual.controls import *

display(center=(0,0,0),background=(1,1,1), autoscale=False, range=(5,7,7),        
        width=600, height=600,  forward=(0.4,-0.3,-1)) #arah kamera

distant_light(direction=(1,1,1), color=color.red)
cylinder(pos=(-4,0,0), axis=(7,0,0), radius=1, color=color.green, opacity=.1)
piston  = cylinder(pos=(-2,0,0), axis=(1,0,0), radius=.7, color=color.red)
piston1  = cylinder(pos=(-2,0,0), axis=(5,0,0), radius=.1, color=color.red)

p0  = 1.
A   = 1.
x0  = 5.        #panjang piston
c   = p0*A*x0
x   = 3
dx  = x0-x       #
m   = 1.
v   = 0.
dt  = 1./8.
def proses():
    global x,v,dx
    p   = c/x
    dp  = p-p0
    print x,dp
    f   = -dp
    a   = f/m
    v   += a*dt
    dx  += v*dt
    x   -= v*dt

    piston.x    = dx
    piston1.x    = dx
while 1:
    rate (19)
    proses()
    
    
    
    

   
.