Re: [deal.II] Form a BlockSparseMatrix based on block matrices from a different BlockSparseMatrix

2023-04-20 Thread Tao Jin
wrote: > On 4/15/23 22:31, Tao Jin wrote: > > > > During a time interval, I want to use the first split operator > > *A B * u1 = b1 *to solve*u1 *and*u2.* > > *B Cu2b2* > > Then, plug the solved u1 and u2 into the second split operator > >

Re: [deal.II] Form a BlockSparseMatrix based on block matrices from a different BlockSparseMatrix

2023-04-25 Thread Tao Jin
22:11 PM UTC-4 Wolfgang Bangerth wrote: > On 4/20/23 17:27, Tao Jin wrote: > > > > My question is, is there a way to involve two different dof_handlers > when > > using the WorkStream class, something like the following: > > What you are looking for is

[deal.II] Form a BlockSparseMatrix based on block matrices from a different BlockSparseMatrix

2023-04-15 Thread Tao Jin
Dear all, This is a similar question related to a post two years ago: https://groups.google.com/g/dealii/c/1L6gLFtvTCo/m/frIyTDXbBwAJ I am developing a fractional time stepping algorithm based on an operator split. Basically, I can obtain the following monolithc system after the finite element

[deal.II] LAPACK error in syevx

2023-06-14 Thread Tao Jin
ribute * it, and/or modify it under the terms of the GNU Lesser General * Public License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * The full text of the license can be found in the file LICENSE.md at * the top level dire

Re: [deal.II] LAPACK error in syevx

2023-06-14 Thread Tao Jin
, > all of the eigenvalues also scale and consequently the tolerance should > also > scale. > > Best > W. > > On 6/14/23 09:47, Tao Jin wrote: > > *** Caution: EXTERNAL Sender *** > > > > Dear all, > > > > I received the message

Re: [deal.II] FullMatrix::copy_to only works for dim <= 3

2023-06-08 Thread Tao Jin
unsigned int, const unsigned int) const; }* This probably explains why the function works properly in 9.5.0 but does not work in 9.4.0 for dimensions larger than 3. Anyhow, I think 9.5.0 has fixed this issue already. Best, Tao On Thursday, June 8, 2023

[deal.II] FullMatrix::copy_to only works for dim <= 3

2023-06-06 Thread Tao Jin
Dear all, When I am implementing a spectrum decomposition for an arbitrary symmetric matrix, I need to copy a full matrix into a rank-2 tensor. I know that FullMatrix has a copy_to() member function like below *templatetemplatevoid FullMatrix< number >::copy_to ( Tensor< 2, dim > &

Re: [deal.II] FullMatrix::copy_to only works for dim <= 3

2023-06-07 Thread Tao Jin
nt) const; }* I assume this is related with explicit instantiation? Best, Tao On Wednesday, June 7, 2023 at 10:38:35 AM UTC-4 Wolfgang Bangerth wrote: > On 6/6/23 15:46, Tao Jin wrote: > > > > However, the above copy_to() function only works when the tensor > dimension is

[deal.II] Solution transfer for BlockVector

2024-01-23 Thread Tao Jin
Dear all, I am trying to use the SolutionTransfer capability of dealii to interpolate a solution from an old mesh to a new mesh. The solution is stored in a BlockVector. My understanding is that current solution transfer functions can only interpolate Vector, not BlockVector. Am I right?

Re: [deal.II] Solution transfer for BlockVector

2024-01-23 Thread Tao Jin
uot;"" However, *refine_interpolate() cannot take *std::vector. Only *interpolate*() has an interface for std::vector. Best, Tao On Tuesday, January 23, 2024 at 4:23:15 PM UTC-5 Wolfgang Bangerth wrote: > On 1/23/24 13:03, Tao Jin wrote: > > > > I am tryi

Re: [deal.II] LinearOperator for fully dense and non-square matrix

2024-04-19 Thread Tao Jin
at 11:25:10 PM UTC-4 Wolfgang Bangerth wrote: > On 4/19/24 19:42, Tao Jin wrote: > > > > Thank you so much for your reply. I think my problem has two potential > issues: > > 1. W * M * W^T will be an n by n fully dense matrix with n > 100k. Even > if it >

Re: [deal.II] LinearOperator for fully dense and non-square matrix

2024-04-19 Thread Tao Jin
Dear Wolfgang, Thanks for the advice! Best, Tao On Friday, April 19, 2024 at 11:58:33 PM UTC-4 Wolfgang Bangerth wrote: > On 4/19/24 21:54, Tao Jin wrote: > > > > Now that my LinearOperator is defined as B_0 + W * M * W^T, I only need > to > > find an appropriate i

Re: [deal.II] LinearOperator for fully dense and non-square matrix

2024-04-19 Thread Tao Jin
rth wrote: > On 4/18/24 12:06, Tao Jin wrote: > > > > I am developing a quasi Newton solver in deal.ii. During each iteration, > I > > need to solve a linear system B * x = p, where the matrix B has the > following > > form: > > B = B_0 + W * M * W^T. >

[deal.II] LinearOperator for fully dense and non-square matrix

2024-04-18 Thread Tao Jin
Dear all, I am developing a quasi Newton solver in deal.ii. During each iteration, I need to solve a linear system B * x = p, where the matrix B has the following form: B = B_0 + W * M * W^T. B_0 is an n by n sparse matrix (n is large > 100k); M is a m by m *full matrix* (m is small m = 20 for

Re: [deal.II] LinearOperator for fully dense and non-square matrix

2024-04-24 Thread Tao Jin
> 100k); M is a m by m *full matrix* (m is small m = 20 for example); W is a n by m full matrix; Thanks again for your advice. Best, Tao On Saturday, April 20, 2024 at 12:27:02 AM UTC-4 Tao Jin wrote: > Dear Wolfgang, > > Thanks for the advice! > Best, > > Tao > > On F

[deal.II] LinearOperator of BlockVector issue and potential fix

2024-04-27 Thread Tao Jin
Dear all, *Background*: I have a BlockVector *u* that needs to be updated via a series of rank-2 update to get BlockVector *v*. For notation convenience, let's call this series of rank-2 update as *P*. I can define *P *as either a LinearOperator or BlockLinearOperator, since I need to solve a

[deal.II] Re: LinearOperator of BlockVector issue and potential fix

2024-04-27 Thread Tao Jin
.reinit_domain_vector = [& usr_matrix_1, & usr_matrix_2](BlockVector , bool omit_zeroing_entries) { v.reinit(2); (v.block(0)).reinit(usr_matrix_1.n(), omit_zeroing_entries); (v.block(1)).reinit(usr_matrix_2.n(), omit_zeroing_entries); }; Best, Tao On Saturday, April 27, 2024