Hi Maxi,

The AffineConstraints class does not support using mixed precision and I am
not aware of any alternatives that can solve this problem directly.

There may be a better solution, but one way to solve this problem would be
to set up two different AffineConstraints objects (one for each floating
point type) and then call distribute_local_to_global with a (copied from
the single precision) double precision cell matrix and double precision
cell RHS and (for single precision) do the opposite. This will update both
the global matrix and global RHS correctly.

AffineConstraints objects will do Gaussian elimination with values taken
from the single precision cell matrix to determine the correct values for
the global RHS, so you will lose some accuracy in the RHS due to
truncation. It might be better to either set up both the matrix and RHS in
double precision and then copy the matrix over to single precision to avoid
this problem, or compute the cell matrix in double precision and copy it to
a single precision matrix (instead of the opposite approach given in the
previous paragraph).

Does this make sense?

Thanks,
David


On Mon, Aug 26, 2019 at 8:09 AM 'Maxi Miller' via deal.II User Group <
[email protected]> wrote:

> I tried to implement a simple mixed-precision algorithm in deal.II, which
> creates my matrix using float values, and my vectors using double values.
> Unfortunately, the function distribute_local_to_global(cell_matrix,
> cell_rhs, local_dof_indices, system_matrix, system_rhs) does not support
> mixed types. Is there an alternative function, or do I have to create two
> AffineConstraints-objects, initialize both with different values (double
> and float) and use them separately?
>
> --
> The deal.II project is located at http://www.dealii.org/
> For mailing list/forum options, see
> https://groups.google.com/d/forum/dealii?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "deal.II User Group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/dealii/39fb6604-f0fc-43a7-b949-7e728e5ac14f%40googlegroups.com
> <https://groups.google.com/d/msgid/dealii/39fb6604-f0fc-43a7-b949-7e728e5ac14f%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
The deal.II project is located at http://www.dealii.org/
For mailing list/forum options, see 
https://groups.google.com/d/forum/dealii?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"deal.II User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/dealii/CABrTbYQ9tYYpPdHt0U%3D2PjJPhN8k%3DbPrWj7rcR%2BF9rMtG1f-qA%40mail.gmail.com.

Reply via email to