Parent Directory | Revision Log | Revision Graph
Links to HEAD: | (view) (download) (annotate) |
Links to checkpoint64p: | (view) (download) (annotate) |
Sticky Tag: |
simplify the use of CPP flags (compile when SEAICE_ALLOW_JFNK is defined)
use new subroutines seaice_lsr_tridiagu/v in s/r seaice_preconditioner
rename SEAICE_CALC_LSR_COEFFS into SEAICE_LSR_CALC_COEFFS
remove the hack, the reason for Bu=0 was that the drag coefficient was not computed in the overlaps, now fixed in seaice_oceandrag_coeffs.F
introduce a hack that avoids divisions by zero. I still need to figure out, why this is necessary.
introduce a restricted additive Schwarz (RAS) method (run LSR into the overlaps as far as possible, i.e OLx/y-2, but overwrite the solution in the overlaps) - add flexible loop ranges to seaice_preconditioner - slightly modify loops in tridiagonal solver lsr-preconditioner - by default remove the extra exchange in seaice_preconditioner with a replacement of an undocumented CPP flag by SEAICE_PRECOND_EXTRA_EXCHANGE - change subroutine names seaice_precond_rshu/v to seaice_precond_rhsu/v (how did that happen)
change type of local variable SINWAT from _RL to _RS (has been done already in seaice_evp.F, seaice_lsr.F & seaice_ocean_stress.F) to avoid mixed-type arguments in sign function (since fCori is _RS). A better way: keep _RL SINWAT and use: SINWAT*SIGN(oneRS,fCori)
remove unused variables
use new S/R SEAICE_CALC_LSR_COEFFS to compute matrix coefficients
- modify the computation of the residual so that the mass of sea-ice is not used twice; this simplyfies the calculations, but since the residual only used if LSR_mixIniGuess.ge.4, and this is never tested, it does not affect the testreport results.
only print residuals for debugLevel.ge.debLevC
- remove unused field pressPre from jfnk solver - rename two subroutines in seaice_preconditioner.F
fix preconditioner once again - remove wrong parts of the rhs and the lhs (were in there because I did not understand the concept of this preconditioner) - add an exchange between u- and v-sweep. This increases communication by a factor of two but improves the convergence of jfnk. Ideally, one would like the u- and v-sweep to be independent. So far within undocumented ifdefs - reorganize the extra computations for printing the residuals
- turn the relaxation parameters WFAU/V into runtime parameters SEAICE_LSRrelaxU/V
finally replace all occurrences of press by pressPre(computed)
replace etaMeanZ by etaZPre, add etaZpre as formal routine parameter
- replace one remaining press by pressLoc (mistake) - adjust printing of residuals
- simplify (?) ocean-drag coefficent computations by using the same routine in all three solvers (saves some code lines) - remove global fields DRAGA and DRAGS from C-grid code and declare them locally in lsr.F (the only place where they are still used)
update preconditioner: - reorder to couple u and v equations - fix a few problems - recieve precomputed press(ure)
fix a small bug in a write statement
preconditioner is a stripped down version of LSOR with fixed number of iterations that can be set as SOLV_MAX_ITERS. Work in progress.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
ViewVC Help | |
Powered by ViewVC 1.1.22 |