course_planning:184_projects:s18_project_4

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
course_planning:184_projects:s18_project_4 [2018/01/30 17:43] – created dmcpaddencourse_planning:184_projects:s18_project_4 [2018/02/01 17:29] (current) dmcpadden
Line 9: Line 9:
 (There's actually a pretty cool "How it's Made" video [[https://youtu.be/hr7yWWq5ZZs|here]] if you have time at the end.) (There's actually a pretty cool "How it's Made" video [[https://youtu.be/hr7yWWq5ZZs|here]] if you have time at the end.)
  
 +==== Project 4B: Better Thundercloud Model ====
 +{{  184_notes:project4b.png?300}}
 +Your colleagues back in Lakeview have called again as the storms continue to get worse. While they greatly appreciated the model you created last week for the Mapping N$\vec{E}$twork Sensory Array (MNSA), the data they are collecting from the sensors are simply not matching the model's predictions. They have concluded that modeling storm clouds as point charges was, in fact, problematic. Based on some research from the [[184_notes:lightning|National Weather Service]], it looks like a better model for clouds would be two flat sheets of charge since the negative charges in the cloud collect on the bottom of the cloud and the positive charges collect near the top. 
 +
 +Given that the negative charge is much closer to the ground (and headquarters), the Lakeviewians want to prioritize what the Mapping N$\vec{E}$twork Sensory Array (MNSA) around HQ will show based on the bottom of the cloud. (If you have time though, they'd be interested in whether the top of the cloud has any effect.) They have shared their model of the bottom of the most recent storm cloud (which is thankfully fully functioning, well-commented code), but they are having trouble getting the electric field on the ground. The Lakeviewians have asked your team for your help completing the code.    
 +
 +<code>
 +#Set up of the objects
 +ground = box(pos = vec(0,0,0), width=5000, length=5000, height=0.1, color=color.green)
 +mountains = [cone(pos=vec(-1800,0,0), axis=vec(0,1000,0), radius=700, color=vec(1,0.7,0.2)),
 +            cone(pos=vec(-1800,0,-1600), axis=vec(0,1000,0), radius=700, color=vec(1,0.7,0.2)), 
 +            cone(pos=vec(-1800,0,1600), axis=vec(0,1000,0), radius=700, color=vec(1,0.7,0.2))]
 +HQ = box(pos = vec(-100,100,0), width = 15, length = 15, height= 200, color = color.blue)
 +cloud = box(pos = vector(0,1000,0), size = vector(500, 1, 500), color = color.white)
 +
 +
 +#Lines 13-48 create a grid of spheres to represent the bottom of the cloud:
 +
 +#Define how many chunks to split the cloud in the x direction (define x size of the cloud grid)
 +nx = 10
 +#Define how many chunks to split the cloud in the z direction (define z size of the cloud grid)
 +nz = 10
 +
 +#Define where the cloud should start/stop in the x direction
 +startx = -250
 +endx = 250
 +#Define the spacing between each chunk in the x, based on where the cloud start/stops and how many chunks there are
 +stepx = (endx - startx)/nx
 +
 +#Define where the cloud should start/stop in the z direction
 +startz = -250
 +endz = 250
 +#Define the spacing between each chunk in the z, based on where the cloud start/stops and how many chunks there are
 +stepz = (endz - startz)/nz
 +
 +#Create an empty list to store each cloud chunk
 +listOfCloudChunks = []
 +
 +#For each cloud chunk in the x-direction
 +for i in range(0,nx):
 +    
 +    #Define the x-location of the cloud chunk
 +    xloc = startx + i*stepx
 +    
 +    #For each cloud chunk in the z-direction
 +    for j in range(0,nz):
 +        
 +        #Define the z-location of the cloud chunk
 +        zloc = startz + j*stepz
 +    
 +        #Make a sphere at that x-z location
 +        cloudChunk = sphere(pos = vector(xloc,1000,zloc), radius = 50, color = color.red)
 +
 +        #Add the sphere to the list of cloud chunks (so we can use it later)
 +        listOfCloudChunks.append(cloudChunk)
 +
 +#This part needs to be fixed and commented...
 +obsLocation = vector(0,0,0)
 +Enet = vector(0,0,0)
 +
 +
 +Q = -15
 +dQ = Q/(nx*nz)
 +k = 9e9
 +
 +
 +for chunk in listOfCloudChunks:
 +    
 +    Enet = vector(0,0,0)
 +</code>
  • course_planning/184_projects/s18_project_4.1517334193.txt.gz
  • Last modified: 2018/01/30 17:43
  • by dmcpadden