Commit Graph

1105 Commits

Author SHA1 Message Date
schroder2
3da9dca838 Added threading to hypre_BoomerAMGInterpTruncation(...) in par_interp.c.
This also included adding OpenMP barrier and critical region functionality.
2011-12-16 23:34:56 +00:00
kolev1
e80453a58d Fixed a typo. 2011-12-13 16:39:55 +00:00
kolev1
24e42a6494 Improved the penalty scaling factor for AMS's discrete divergence term (which is
added to the matrix to handle robustly problems with pure void regions).
2011-12-12 18:14:57 +00:00
kolev1
c20de1d3de Fixed a compiler warning. 2011-11-10 17:06:17 +00:00
kolev1
d65f1806e9 Do not use the ParBooleanMatmul hack in AMS when assumed partitioning is on
(since parallel Boolean matrices don't support it).

Switch back to the old version of cycle type 11.
2011-11-09 20:36:56 +00:00
kolev1
5ca56bbd3c If no coarsening occurred in BoomerAMG, use the user relax type (instead of 0)
in order to allow for the setting of a convergent smoother.

This is necessary when solving problems with singular matrix to make sure that
BoomerAMG will be a solver (or at least that its error propagator will have
spectral radius <= 1).
2011-11-09 20:34:57 +00:00
kolev1
b653606ccb Removed a double space. 2011-11-09 20:30:03 +00:00
kolev1
2bb7111a06 Final, final changes before 2.8.0b :) 2011-11-04 23:57:46 +00:00
kolev1
9976ea19fd Final adjustments in ADS before the release. 2011-11-04 18:03:29 +00:00
kolev1
45d54ab4b5 Final adjustments in AMS before the release. 2011-11-04 17:38:15 +00:00
kolev1
b9b84bcd46 Extended ADS to support (arbitrary) high-order Raviart-Thomas discretizations.
Modified the high-order AMS interface.
2011-11-03 23:38:35 +00:00
kolev1
a45c5c0836 Added support for (arbitrary) high-order Nedelec finite element discretizations
in AMS.

Seems to be working quite well on hex meshes and reasonably well on tet meshes,
correlating with the performance of BoomerAMG on the associated high-order nodal
problems.
2011-11-02 20:22:21 +00:00
falgout
ca9e58b762 Added Euclid as a preconditioner. 2011-10-31 17:05:15 +00:00
ulrikey
b63cc0638a added redundant coarse grid solve to hybrid solver 2011-10-24 17:51:26 +00:00
ulrikey
87eda39ed1 fixed memory leak 2011-10-14 14:32:21 +00:00
ulrikey
99fec2cdfe fixed check-mpi 2011-10-14 14:28:55 +00:00
ulrikey
da68e11538 fixed various memory leaks 2011-10-13 17:54:49 +00:00
ulrikey
7f2cb77ff7 *** empty log message *** 2011-10-13 15:18:41 +00:00
ulrikey
261fa5e3dd initialized Solve_err_flag 2011-10-13 15:12:38 +00:00
ulrikey
5ce8f6d6f9 fixed some .h issues 2011-10-13 15:04:09 +00:00
ulrikey
cc0f17879a fixed check-mpi error messages 2011-10-13 14:52:05 +00:00
ulrikey
ff687aca04 included necessary portion of par_csr_block_matrix.h 2011-10-07 22:47:54 +00:00
ulrikey
ea98d377ac fixed array size 2011-10-07 16:52:45 +00:00
ulrikey
ba57e3ef15 fixed MPI_INTs 2011-10-07 16:25:57 +00:00
ulrikey
3fa0921acb changed MPI_COMM_NULL to hypre_MPI_COMM_NULL 2011-10-07 15:59:40 +00:00
ulrikey
d294df229a changed MPI_COMM_SELF to hypre_MPI_COMM_SELF 2011-10-07 15:43:00 +00:00
ulrikey
3f02c458b9 replaced MPI calls with hypre_MPI calls and changed error check 2011-10-07 14:19:46 +00:00
ulrikey
c6a707fca0 Added the redundant coarse grid solve 2011-10-06 23:08:25 +00:00
ulrikey
046971b494 fixed a bug 2011-10-06 23:07:11 +00:00
kolev1
d7a5e3bb57 Added a new solver -- the Auxiliary-space Divergence Solver (ADS) which targets
div-div problems discretized with the lowest order Raviart-Thomas "face" finite
elements.

ADS is very similar to AMS, and in general its relationship to AMS is analogous
to the relationship between AMS and AMG.
2011-09-26 22:38:34 +00:00
kolev1
9be308db5f Extended hypre_ParCSRSubspacePrec to work with arbitrary subspace solvers. This
way, it can also be used in ADS where we need to use AMS in a subspace.

Fixed a memory leak.
2011-09-26 22:34:01 +00:00
kolev1
5f034af3f2 Small adjustments in the description and the accessor functions for the
hypre_AMSData structure.
2011-09-26 22:31:44 +00:00
kolev1
902df21f62 Fixed indentation due to the HYPRE_Int transition. 2011-09-23 17:06:44 +00:00
kolev1
101791c65a Made sure that the l1 smoothers can handle (partially) negative definite
matrices.
2011-09-13 18:03:43 +00:00
kolev1
1b619a2f10 Fixed the comment for hypre_AMSData.Pi. 2011-09-13 18:02:14 +00:00
ulrikey
46e3f8962f fixed a bug 2011-05-20 14:35:37 +00:00
falgout
c33854e3d1 Changed 'int' to 'HYPRE_Int' 2011-05-06 15:08:11 +00:00
baker59
d704f1a861 updated comments 2011-05-03 19:10:18 +00:00
baker59
458dcc63b2 This is code for modifying interpolation weights in a least-squares manner to
fit a particular set of vectors.  This was used in the Baker, Kolev, Yang elasticity paper, and was not particularly effective - therefore is not not compiled and accessed through hypre at this time.
2011-05-03 18:54:11 +00:00
falgout
0859f791e1 Changed the error control handling to use the new system. 2011-03-24 22:13:12 +00:00
kolev1
320aff47cd Updated the AMS documentation in the User and Reference Manuals. 2011-01-27 19:49:44 +00:00
falgout
68b7b5518a Changed 'long' to either 'hypre_longint' or 'HYPRE_Int'. 2011-01-27 19:46:14 +00:00
kolev1
43969388b5 Slight adjustment in the new l1-GS smoother (relax type 4 in AMS and 8 in
BoomerAMG) which significantly improves its performance.
2011-01-27 17:16:58 +00:00
falgout
3f0a439827 Changed the Fortran interface to use a Fortran MPI communicator.
Also implemented the new F90 types and macros for all of the interfaces.
2011-01-06 23:20:57 +00:00
kolev1
63f0d69abc Fixed indentation after the transition to HYPRE_Int. 2011-01-04 01:05:27 +00:00
falgout
d636ba377d Fixed the size of a Fortran communicator to be 'int' not 'HYPRE_Int'.
Changed the communicator type in all Fortran interface routines to use
the new hypre_F90_Comm type.
2010-12-21 19:34:30 +00:00
falgout
e3181f26b1 Added 64 bit feature using HYPRE_Int (see tracker [issue489] for details).
Changed MPI routines to hypre_MPI routines.
Added hypre_printf, etc. routines.
Added AUTOTEST tests to look for 'int' and 'MPI_' calls.
Added a new approach for the Fortran interface (not implemented everywhere yet).
2010-12-20 19:27:44 +00:00
baker59
e73c417e3d Added a private variable for the l1 norm computation 2010-12-08 00:15:50 +00:00
baker59
fb7a432223 fixed typo in a AP variable name 2010-12-07 17:50:52 +00:00
baker59
f2dce0f0b5 commneted out unised variable 2010-11-30 22:21:29 +00:00
baker59
0f23d3c9ed minor change to check num interp vectors 2010-11-30 22:16:23 +00:00
baker59
9bd0f1a8b5 Added the new elasticity interpolation routines. 2010-11-30 21:04:04 +00:00
ulrikey
6e302b0d5e fixed a potential bug 2010-09-20 16:21:46 +00:00
ulrikey
8a7dafcdc4 eliminated redundant operations 2010-09-16 23:12:46 +00:00
baker59
6328bd984e Fixed bug in OMP. 2010-09-16 22:09:22 +00:00
ulrikey
b19a7d4760 fixed a bug, which caused a seg fault in some cases 2010-09-16 21:51:17 +00:00
kolev1
4f82996b2f Added the truncated l1-GS smoother based on Remark 6.2 from our smoothers paper
(this is relax_type 4). Updated hypre_ParCSRComputeL1Norms() to support CF mode,
whenever the provided cf_marker is not NULL.
2010-09-02 23:53:09 +00:00
kolev1
712b387e1d Modified BoomerAMG relax option 8 to use the l1 norms from Remark 6.2 in the
smoothers paper and to also support CF smoothing. Moved the implementation from
ams.c to par_relax.c.

This smoother should behave more or less like option 6 when theta>1, but is
guaranteed to always be convergent.
2010-09-02 23:50:12 +00:00
kolev1
632fff9905 Added an l1_norms parameter to the BoomerAMG relaxation routines.
(I initially thought about putting the BoomerAMG solver data structure as an
extra parameter, but realized that the ParCSR smoothers are of general interest)
2010-09-02 23:47:08 +00:00
kolev1
a935cca407 Fixed a bug, where the destruction of GtAG freed the column partitioning
of G (which is a user input).
2010-08-04 00:07:51 +00:00
ulrikey
c0f329bc60 fixed a memory leak 2010-05-04 15:12:12 +00:00
baker59
6d4fe0dcc9 Added capability to do CF smoothing with L1-Jacobi. 2010-04-21 21:27:11 +00:00
ulrikey
e40c006e3a fixed some bugs ( some if statements contained |= instead of != ) 2010-04-15 22:52:59 +00:00
baker59
a49e3ae42d Changed some comments for the manual. 2010-04-14 16:59:20 +00:00
falgout
0d22e61847 Added some commented-out code at the end of Setup to compute compatible
relaxation rates on all levels and print them out.
2010-04-02 17:48:47 +00:00
kolev1
058f6a8b71 Fixed a bug in the void-zone version of AMS, which sometimes produced
non-symmetric preconditioner.
2010-03-19 18:09:32 +00:00
baker59
246667fd8d fixed bug with threaded L1-jacobi 2010-03-18 19:12:12 +00:00
baker59
d60adad0c5 Added new smoothers: Chebyshev (to AMG and AMS), FCF-Jaconi, and CG.
Added threaded version of L1-Jacobi.
2010-03-17 23:33:14 +00:00
falgout
a096e956b5 Added additional reference and user manual documentation for LOBPCG. 2010-01-29 22:32:52 +00:00
falgout
6fdb8c74fd Changed to install only one hypre lib file. 2010-01-29 01:40:29 +00:00
ulrikey
7bb4c9a503 corrected the documentation 2010-01-25 23:30:20 +00:00
ulrikey
b5f55c8412 fixed some bugs 2010-01-25 18:55:07 +00:00
ulrikey
8b480e696d fixed some warnings 2010-01-23 23:05:29 +00:00
ulrikey
b757593162 fixed a bug in par_nodal_systems that affected options nodal > 0 2010-01-22 23:55:24 +00:00
falgout
0d5b565145 Removed most of the ref docs for the storage-dependent Krylov routines. 2010-01-20 01:10:01 +00:00
ulrikey
e1706c594e added some comments regarding SolveT and CGNR 2010-01-15 18:18:18 +00:00
baker59
a11e27ff7d Updating the fortran interface. 2010-01-14 18:31:36 +00:00
falgout
9f26a7739a Changed 'cp -fpd' to 'cp -fpPR' for better portability.
This should work on the Mac now in particular.
2010-01-14 18:17:53 +00:00
falgout
8ed12c2264 Added the release number to the names of hypre shared libraries (see [issue181]).
Also removed the HYPRE_LSI library because it was nearly identical to HYPRE.
2010-01-14 01:16:24 +00:00
ulrikey
955f0d9672 forced cycleT to always run relax type 7 or 9, since nothing else makes sense here. 2010-01-13 18:55:58 +00:00
kolev1
6344e65e12 Added math mode to some formulas. 2010-01-13 18:18:22 +00:00
kolev1
09e80c238a Added a user function that project a given vector onto the compatible
subspace for problems with zero-conductivity regions. This is useful for
visualization of the solution, which otherwise will be polluted by kernel
components.
2010-01-13 03:15:03 +00:00
ulrikey
ef895d71ce revert to old version since there is something funny going on 2010-01-13 00:49:52 +00:00
ulrikey
fc0df1425d fixed a problem in cycleT 2010-01-13 00:19:56 +00:00
kolev1
06916c815c Small changes to enable compulition on Windows with Visual C++. 2009-11-17 22:27:43 +00:00
ulrikey
565768fcb4 Warnings in interpolation routine are now only printed when print_level > 0 2009-11-12 23:39:18 +00:00
ulrikey
39c52c07b1 added new routines that enable threading for relax_type=8 2009-11-12 23:22:53 +00:00
baker59
ea3f736a2f Fixed bug with new temporary vector. 2009-11-05 21:23:27 +00:00
baker59
5a957e930a Updated the threading - which required the addition of a temporary vectory
to the BoomerAMGRelax function (used for relax 3 and 6).
2009-11-03 20:54:48 +00:00
baker59
ce948a6e3f Fixed a bug in BoomerAMGSolveT routine and deleted some commented-out
code in the relax interface function.
2009-10-30 16:48:33 +00:00
ulrikey
3d09d3068a fixed potential problem when using max_levels = 1 2009-10-23 21:39:46 +00:00
kolev1
f773fd6a32 Moved the solver_counter from AMSSolve() to the ams data structure. This
way multiple Setup()+Solve() calls will give identical results.
2009-10-15 20:25:42 +00:00
kolev1
df0528b310 Plugged a memory leak. 2009-09-18 22:48:49 +00:00
kolev1
7946048c89 Several improvements in the zero-conductivity-regions version of AMS, which
should give a cheaper and more robust solver on most problems.
2009-08-31 22:20:03 +00:00
ulrikey
08a41748fc removed unused variables 2009-08-18 14:23:35 +00:00
ulrikey
f067b77a82 fixed various memory leaks 2009-08-14 17:49:14 +00:00
ulrikey
81b4a12219 added new interpolation operators for aggressive coarsening 2009-08-13 22:43:47 +00:00
kolev1
b88deab80f Added a more robust version of AMS for problems with zero-conductivity regions,
where the matrix is singular Ker(A)=Ran(G0).

To use this version, provide a list of the interior nodes in the zero
conductivity region using AMSSetInteriorNodes(). This will constructs G0 and AMS
for A+G0G0^T.  For compatibility, the PCG residual is periodically projected
onto Ker(G0^T).  This is done in AMSSolve() and can be adjusted with
AMSSetProjectionFrequency().
2009-07-20 00:36:39 +00:00
ulrikey
1673b0bbdc *** empty log message *** 2009-05-05 16:36:36 +00:00
ulrikey
6c86d7f019 nitialzed plot_file_name with empty string 2009-05-05 16:25:46 +00:00