Nek5000
SEM for Incompressible NS
|
Go to the source code of this file.
Functions/Subroutines | |
subroutine | prepost (ifdoin, prefin) |
Store results for later postprocessing. Recent updates: p65 now indicates the number of parallel i/o files; iff p66 >= 6. More... | |
subroutine | prepost_map (isave, pm1) |
Store results for later postprocessing. More... | |
subroutine | outfld (prefix, pm1) |
output .fld file More... | |
subroutine | outhis (ifhis, pm1) |
output time history info. More... | |
subroutine | copyx4 (a, b, n) |
subroutine | copy4r (a, b, n) |
integer function | i_find_prefix (prefix, imax) |
subroutine | mfo_outfld (prefix, pm1) |
mult-file output More... | |
subroutine | io_init |
subroutine | mfo_open_files (prefix, ierr) |
subroutine | restart_nfld (nfld, prefix) |
Check for Restart option and return proper nfld value. Also, convenient spot to explain restart strategy. The approach is as follows: Prefix rs4 would indicate 4 files in the restart cycle. This would be normal usage for velocity only, with checkpoints taking place in synch with standard io. The resultant restart sequence might look like: blah.fld09 Step 0 rs4blah.fld01 1 rs4blah.fld02 2 which implies that fld09 would be used as the i.c. in the restart, rs4blah.fld01 would overwrite the solution at Step 1, and rs4blah.fld02 would overwrite Step 2. Net result is that Steps 0-2 of the restart session have solutions identical to those computed in the prior run. (It's important that both runs use the same dt in this case.) Another equally possible restart sequence would be: blah.fld10 Step 0 rs4blah.fld03 1 rs4blah.fld04 2 Why the 3 & 4 ? If one were to use only 1 & 2, there is a risk that the system crashes while writing, say, rs4blah.fld01, in which case the restart is compromised – very frustrating at the end of a run that has been queued for a week. By providing a toggled sequence in pairs such as (1,2), (3,4), (1,2), ... ensures that one always has at least one complete restart sequence. In the example above, the following files would be written, in order: : : blah.fld09 rs4blah.fld01 rs4blah.fld02 blah.fld10 rs4blah.fld03 rs4blah.fld04 blah.fld11 rs4blah.fld01 (overwriting existing rs4blah.fld01) rs4blah.fld02 ( " " " .fld02) blah.fld12 rs4blah.fld03 ( etc. ) rs4blah.fld04 : : Other strategies are possible, according to taste. Here is a data-intensive one: MHD + double-precision restart, but single-precision std files In this case, single-precision files are kept as the running file sequence (i.e., for later post-processing) but dbl-prec. is required for restart. A total of 12 temporary restart files must be saved: (3 for velocity, 3 for B-field) x 2 for redundancy. This is expressed, using hexadecimal notation (123456789abc...), as prefix='rsc'. More... | |
subroutine | outpost (v1, v2, v3, vp, vt, name3) |
subroutine | outpost2 (v1, v2, v3, vp, vt, nfldt, name3) |
subroutine | mfo_mdatav (u, v, w, nel) |
subroutine | mfo_mdatas (u, nel) |
subroutine | mfo_outs (u, nel, mx, my, mz) |
output a scalar field More... | |
subroutine | mfo_outv (u, v, w, nel, mx, my, mz) |
output a vector field More... | |
subroutine | mfo_write_hdr |
write hdr, byte key, els. More... | |
Definition at line 644 of file prepost.F90.
Referenced by mapab4r(), mapdmp(), io::mfo_read_scalar(), and io::mfo_read_vector().
subroutine copyx4 | ( | real(r4), dimension(n), intent(out) | a, |
real(dp), dimension(n), intent(in) | b, | ||
integer, intent(in) | n | ||
) |
Definition at line 630 of file prepost.F90.
Referenced by mfo_outs(), and mfo_outv().
integer function i_find_prefix | ( | character(3) | prefix, |
integer | imax | ||
) |
Definition at line 657 of file prepost.F90.
References exitt().
Referenced by outfld().
subroutine io_init | ( | ) |
Definition at line 903 of file prepost.F90.
References exitt(), nek_comm_io(), and np.
Referenced by nek_init().
subroutine mfo_mdatas | ( | real(dp), dimension(lx1*ly1*lz1,*), intent(in) | u, |
integer, intent(in) | nel | ||
) |
Definition at line 1346 of file prepost.F90.
References byte_write, byte_write_mpi(), crecv(), csend(), err_chk(), and nekgsync().
Referenced by mfo_outfld().
subroutine mfo_mdatav | ( | real(dp), dimension(lx1*ly1*lz1,*), intent(in) | u, |
real(dp), dimension(lx1*ly1*lz1,*), intent(in) | v, | ||
real(dp), dimension(lx1*ly1*lz1,*), intent(in) | w, | ||
integer, intent(in) | nel | ||
) |
Definition at line 1253 of file prepost.F90.
References byte_write, byte_write_mpi(), crecv(), csend(), err_chk(), and nekgsync().
Referenced by mfo_outfld().
subroutine mfo_open_files | ( | character(3) | prefix, |
integer | ierr | ||
) |
Definition at line 971 of file prepost.F90.
References blank(), chcopy(), string::ltrunc(), mbyte_open(), and restart_nfld().
Referenced by mfo_outfld().
subroutine mfo_outfld | ( | character(3), intent(in) | prefix, |
real(dp), dimension (lx1,ly1,lz1,lelv), intent(in) | pm1 | ||
) |
mult-file output
Definition at line 695 of file prepost.F90.
References bcast(), byte_close, byte_close_mpi(), byte_set_view(), ctimer::dnekclock_sync(), err_chk(), mfo_mdatas(), mfo_mdatav(), mfo_open_files(), mfo_outs(), mfo_outv(), and mfo_write_hdr().
Referenced by outfld().
subroutine mfo_outs | ( | real(dp), dimension(mx,my,mz,1), intent(in) | u, |
integer, intent(in) | nel, | ||
integer, intent(in) | mx, | ||
integer, intent(in) | my, | ||
integer, intent(in) | mz | ||
) |
output a scalar field
Definition at line 1424 of file prepost.F90.
References byte_write, copy(), copyx4(), crecv(), csend(), err_chk(), exitt(), and nekgsync().
Referenced by mfo_outfld().
subroutine mfo_outv | ( | real(dp), dimension(mx*my*mz,*), intent(in) | u, |
real(dp), dimension(mx*my*mz,*), intent(in) | v, | ||
real(dp), dimension(mx*my*mz,*), intent(in) | w, | ||
integer | nel, | ||
integer, intent(in) | mx, | ||
integer, intent(in) | my, | ||
integer, intent(in) | mz | ||
) |
output a vector field
Definition at line 1519 of file prepost.F90.
References byte_write, copy(), copyx4(), crecv(), csend(), err_chk(), exitt(), and nekgsync().
Referenced by mfo_outfld().
subroutine mfo_write_hdr | ( | ) |
write hdr, byte key, els.
Definition at line 1642 of file prepost.F90.
References blank(), byte_set_view(), byte_write, byte_write_mpi(), crecv(), csend(), err_chk(), get_bytesw_write, parallel::lglel(), nekgsync(), and set_bytesw_write.
Referenced by mfo_outfld().
subroutine outfld | ( | character(3), intent(in) | prefix, |
real(dp), dimension (lx1,ly1,lz1,lelv), intent(in) | pm1 | ||
) |
output .fld file
Definition at line 248 of file prepost.F90.
References bcast(), blank(), byte_open, chcopy(), crecv(), csend(), err_chk(), parallel::gllel(), parallel::gllnid(), i, i_find_prefix(), id, string::ltrunc(), mfo_outfld(), mod1(), and nekgsync().
Referenced by prepost().
subroutine outhis | ( | logical | ifhis, |
real(dp), dimension (lx1,ly1,lz1,lelv) | pm1 | ||
) |
output time history info.
Definition at line 429 of file prepost.F90.
References crecv(), csend(), parallel::gllel(), parallel::gllnid(), and np.
Referenced by prepost().
subroutine outpost | ( | real(dp), dimension(*) | v1, |
real(dp), dimension(*) | v2, | ||
real(dp), dimension(*) | v3, | ||
real(dp), dimension(*) | vp, | ||
real(dp), dimension(*) | vt, | ||
character(3) | name3 | ||
) |
Definition at line 1152 of file prepost.F90.
References outpost2().
Referenced by glmapm1().
subroutine outpost2 | ( | real(dp), dimension(1) | v1, |
real(dp), dimension(1) | v2, | ||
real(dp), dimension(1) | v3, | ||
real(dp), dimension(1) | vp, | ||
real(dp), dimension(ltot1,1) | vt, | ||
integer | nfldt, | ||
character(3) | name3 | ||
) |
Definition at line 1169 of file prepost.F90.
References copy(), ctimer::dnekclock(), exitt(), and prepost().
Referenced by outpost().
subroutine prepost | ( | logical | ifdoin, |
character(3) | prefin | ||
) |
Store results for later postprocessing. Recent updates: p65 now indicates the number of parallel i/o files; iff p66 >= 6.
Definition at line 5 of file prepost.F90.
References ctimer::dnekclock(), err_chk(), gop(), outfld(), outhis(), and prepost_map().
Referenced by nek_solve(), and outpost2().
subroutine prepost_map | ( | integer, intent(in) | isave, |
real(dp), dimension (lx1,ly1,lz1,lelv), intent(out) | pm1 | ||
) |
Store results for later postprocessing.
Definition at line 130 of file prepost.F90.
Referenced by prepost().
subroutine restart_nfld | ( | integer | nfld, |
character(3) | prefix | ||
) |
Check for Restart option and return proper nfld value. Also, convenient spot to explain restart strategy. The approach is as follows: Prefix rs4 would indicate 4 files in the restart cycle. This would be normal usage for velocity only, with checkpoints taking place in synch with standard io. The resultant restart sequence might look like: blah.fld09 Step 0 rs4blah.fld01 1 rs4blah.fld02 2 which implies that fld09 would be used as the i.c. in the restart, rs4blah.fld01 would overwrite the solution at Step 1, and rs4blah.fld02 would overwrite Step 2. Net result is that Steps 0-2 of the restart session have solutions identical to those computed in the prior run. (It's important that both runs use the same dt in this case.) Another equally possible restart sequence would be: blah.fld10 Step 0 rs4blah.fld03 1 rs4blah.fld04 2 Why the 3 & 4 ? If one were to use only 1 & 2, there is a risk that the system crashes while writing, say, rs4blah.fld01, in which case the restart is compromised – very frustrating at the end of a run that has been queued for a week. By providing a toggled sequence in pairs such as (1,2), (3,4), (1,2), ... ensures that one always has at least one complete restart sequence. In the example above, the following files would be written, in order: : : blah.fld09 rs4blah.fld01 rs4blah.fld02 blah.fld10 rs4blah.fld03 rs4blah.fld04 blah.fld11 rs4blah.fld01 (overwriting existing rs4blah.fld01) rs4blah.fld02 ( " " " .fld02) blah.fld12 rs4blah.fld03 ( etc. ) rs4blah.fld04 : : Other strategies are possible, according to taste. Here is a data-intensive one: MHD + double-precision restart, but single-precision std files In this case, single-precision files are kept as the running file sequence (i.e., for later post-processing) but dbl-prec. is required for restart. A total of 12 temporary restart files must be saved: (3 for velocity, 3 for B-field) x 2 for redundancy. This is expressed, using hexadecimal notation (123456789abc...), as prefix='rsc'.
Definition at line 1125 of file prepost.F90.
References string::indx1(), and string::ltrunc().
Referenced by mfo_open_files().