<- previous    index    next ->
Extend PDE solution to complex coefficients and region L31z

Extend PDE solution to complex coefficients and region

Using C++ standard template library #include and defining a type cmplx typedef complex cmplx; Global substitute cmplx for double and fix a few varaibles that must remain double. Fix many formats to print complex (real,imag) Almost all mathematical algorithms that work with real values, also work with complex values. This is just the initial PDE of second order in three dimensions, in "C", Java, Fortran, Ada

Source code for ".cpp" version, second derivative, two dimensions

nuderiv.hpp compute derivatives nuderiv.cpp on non uniform grid simeq.hpp solve simultaneous equations simeq.cpp with complex coefficients pde22nu_eq.cpp complex PDE solver pde22nu_eq_cpp.out solution The errors were close to the same PDE using just real values. Commands to compile and run above g++ -o pde22nu_eq pde22nu_eq.cpp simeq.cpp nuderiv.cpp -lm pde22nu_eq > pde22nu_eq_cpp.out # writes pde22nu_eq_cpp.out

Source code for java version

Complex.java Complex type and methods Csimeq.java complex simultaneous equations Cinvert.java complex matrix inversion Cnuderiv.java complex non uniform derivative pdeCnu22_eq.java complex PDE solver pdeCnu22_eq_java.out solution The errors were close to the same PDE using just real values. Commands to compile and run above javac -cp . Complex.java javac -cp . Csimeq.java javac -cp . Cinvert.java javac -cp . Cnuderiv.java javac -cp . pdeCnu22_eq.java java -cp . pdeCnu22_eq > pdeCnu22_eq_java.out # writes pdeCnu22_eq_java.out

Source code for fortran version

The _eq uses C zero based subscripts, the _eq1 used Fortran 1 based subscripts nuderivC.f90 Complex non uniform derivative inverseC.f90 Complex matrix inversion simeqC1.f90 Complex simultaneous equations pdeCnu22_eq.f90 Complex PDE source code pdeCnu22_eq_f90.out solution pdeCnu22_eq1.f90 Complex PDE source code pdeCnu22_eq1_f90.out solution Commands to compile and run above gfortran pdeCnu22_eq.f90 nuderivC.f90 inverseC.f90 a.out > pdeCnu22_eq_f90.out gfortran pdeCnu22_eq1.f90 nuderivC.f90 inverseC.f90 simeqC1.f90 a.out > pdeCnu22_eq1_f90.out For more information on Numerical Computation, follow link below: CMSC 455 Numerical Computation lectures
    <- previous    index    next ->

Other links

Go to top