41 | | INTEGER :: dim = 3 ! projection axis |
42 | | REAL(KIND=qPREC) :: pow=1d0 ! power to multiply field by before summing |
43 | | INTEGER :: PlotLevel=MAXIMUMPLOTLEVEL ! Sets resolution of output to that of PlotLevel. |
44 | | ! (MAXIMUMPLOTLEVEL uses the current finest level of resolution) |
45 | | TYPE(CameraDef), POINTER :: Camera ! Optional definition of a particular camera to use for the projection. |
| 41 | TYPE(FieldDef) :: Field ! Field to use |
| 42 | REAL(KIND=qPREC), DIMENSION(:,:), ALLOCATABLE :: Data ! column density of field |
| 43 | INTEGER :: dim=3 ! projection axis |
| 44 | REAL(KIND=qPREC) :: pow=1d0 ! Power to raise field value to |
| 45 | LOGICAL :: lReadCameraList=.false. ! Can be used instead of a single camera to make movies |
| 46 | INTEGER :: PlotLevel=MAXIMUMPLOTLEVEL ! Sets resolution of output to that of PlotLevel. |
| 47 | TYPE(ShapeDef), POINTER :: Shape => NULL() ! Optional Shape object which can be used to exclude points outside of shape. |
| 48 | TYPE(ProjectionDef), POINTER :: next |
| 49 | TYPE(CameraDef), POINTER :: Camera => NULL() ! Optional camera if image is not along principal axis |
| 50 | TYPE(ImageDef), POINTER :: Image => NULL() ! Optional image object which will produce a file |
48 | | At each process event (currently each frame) a bov/dat file pair will be generated in the out directory ie. {{{out/cooling_strength_along_3_00014.bov}}} and {{{out/cooling_strength_along_3_00014.dat}}}. The {{{.bov}}} file contains information about the data as well as the location of the actual data file {{{.dat}}} which contains the raw unformatted binary data. Visit will only recognize the {{{.bov}}} files. After opening the file, there will be a 2D dataset with a single variable '''projection''' that contains the integrated values. |
| 53 | * At each process event (currently each frame) a bov/dat file pair will be generated in the out directory ie. {{{out/cooling_strength_along_3_00014.bov}}} and {{{out/cooling_strength_along_3_00014.dat}}}. The {{{.bov}}} file contains information about the data as well as the location of the actual data file {{{.dat}}} which contains the raw unformatted binary data. Visit will only recognize the {{{.bov}}} files. After opening the file, there will be a 2D dataset with a single variable '''projection''' that contains the integrated values. |
| 54 | |
| 55 | |
| 56 | * Making movies using the camera list: If Projection%lReadCameraList == .true. then a file camera.data should be present in the run directory. The first line contains the number of cameras and then there should be that many camera namelists each with properties for the camera for each image should be shown. The camera%id will be present in the filename... and only the camera properties that change need to be present... (ie focus, up vector, are inherited from the previous camera - but can be changed) |
| 57 | {{{ |
| 58 | 60 |
| 59 | &CameraData |
| 60 | MyCamera%pos= 0.0000000E+00 50.00000 50.00000 |
| 61 | MyCamera%id= 0 |
| 62 | / |
| 63 | &CameraData |
| 64 | MyCamera%pos= 0.2739029 44.77357 50.00000 |
| 65 | MyCamera%id= 1 |
| 66 | / |
| 67 | &CameraData |
| 68 | MyCamera%pos= 1.092617 39.60442 50.00000 |
| 69 | MyCamera%id= 2 |
| 70 | / |
| 71 | &CameraData |
| 72 | MyCamera%pos= 2.447174 34.54915 50.00000 |
| 73 | MyCamera%id= 3 |
| 74 | / |
| 75 | &CameraData |
| 76 | MyCamera%pos= 4.322727 29.66317 50.00000 |
| 77 | MyCamera%id= 4 |
| 78 | / |
| 79 | ... |
| 80 | }}} |
| 81 | |
| 82 | [[Image(wiki:CameraObjects:rotating.gif)]] |
| 83 | |
| 84 | The above camera.data file was generated with a fortran code |
| 85 | {{{ |
| 86 | program moviescript |
| 87 | implicit none |
| 88 | INTEGER :: i, nframes |
| 89 | REAL :: theta, focus(3), r |
| 90 | r=50d0 |
| 91 | focus=(/50d0,50d0,50d0/) |
| 92 | nFrames=60 |
| 93 | write(*,*) nframes |
| 94 | DO i=0,nframes-1 |
| 95 | theta=2d0*acos(-1d0)*real(i)/real(nframes) |
| 96 | write(*,*) '&CameraData' |
| 97 | write(*,*) 'MyCamera%pos=', focus(1)-r*cos(theta), focus(2)-r*sin(theta), focus(3) |
| 98 | write(*,*) 'MyCamera%id=', i |
| 99 | write(*,*) '/' |
| 100 | END DO |
| 101 | end program moviescript |
| 102 | |
| 103 | }}} |