<- previous    index    next ->

Lecture 40, unique numerical solution of differential equations


The goal of this lecture is to show the long development
cycle of a unique numerical solution of a partial differential
equation in the domain of an arbitrary 3D closed polyhedra with
Dirchilet boundary conditions at the vertices.

The development included using several file formats to define
the closed polyhedra and the developing code to be sure that
the polyhedra was really closed. There may be one or more
polyhedra "hole" completely inside the outer closed polyhedra.

Just determining the "refinement", the location of internal
points where the solution is to be computed was needed.

Previous solutions have used FEM, finite element method and
various forms of discretization. Basically building a system
of linear equations containing the internal points and then
solving the system of linear equations to get the solution
at each point. The unique method that came about during this
development is to solve for each internal point, DOF, degree
of freedom serially, independent of any other internal point.
This also makes the solution easily parallizable to any
number of processores.

The intuition came from studying one internal point that
seemed to be surrounded by a randomly scattered bunch of
vertices. Oh! If I could compute the derivatives in the
PDE at that point based on boundary vertices with known
Dirchilet values, the only unknown is the solution at
that internal point. Yes I can. My object of interest
was a Medieval Spiked Flail, the surface was a bunch
of points created out of tetrahedrons.

Now, to the formal development, specifically for three
dimensions, although it does generalize. Also limited
to fourth order derivatives, although that could be
increased.


 The series of Makefile runs 

 sphere_div.c  data generator 

 spike.dat polyhedra 

 format changer .dat to .inp UCD 

 spike.inp polyhedra UCD format 

 datread.h  .dat format read 3D figure,  
 datread.c  into working arrays  
 test_datread.c  test read and closed polyhedra 
 test_datread_c.out  spike.dat OK 

 pde_read_ucd.h  .inp format read 3D figure, 
 pde_read_ucd.c  etc., into working arrays 
 test_pde_read_ucd.c read and print data 
 test_pde_read_spike_c.out  

 test_pde_inside3_ucd.c point in polyhedra 
 test_pde_inside3_ucd_c.out point in polyhedra tested 


 nuderiv3dg.h derivative from random points 
 nuderiv3dg.c up to 4th order in 3 variables 
 test_nuderiv3dg.c test every call 
 test_nuderiv3dg_c.out all OK 

 lsfit.h  multidimensional polynomial fit, 
 lsfit.c  fit from random points 
 test_lsfit7.c  sample test 
 test_lsfit7_c.out  sample output 

 simeq.h  solve simultameous equations 
 simeq.c  solve simultameous equations 
 test_simeq.c  simple test 
 test_simeq_c.out  OK 

 point_in_poly.h determine if a point 
 point_in_poly.c is in polygon or polyhedra 
 test_point_in_poly.c  test 
 test_point_in_poly_c.out results 

 pde_spike.c  solve 4th order PDE on spike.inp 
 pde_spike_c.out  test results 


    <- previous    index    next ->

Other links

Go to top