Dear John,

> Assuming that I want to continue to use 
> constraints.distribute_local_to_global, how do I treat the assembly 
> terms ui_ve_matrix, ue_vi_matrix i.e. those that contain integrals 
> involving cell and neighbor?  The two cells may not have the same number 
> of degrees of freedom, so the matrices may not be square, so I tried to use
> void ConstraintMatrix::distribute_local_to_global      (      const 
> FullMatrix< double > &        local_matrix,
>          const std::vector< unsigned int > &      row_indices,
>          const std::vector< unsigned int > &      col_indices,
>          MatrixType &      global_matrix
>      )             const
> but the local_dof_indices and neighbor_dof_indices are not the correct 
> variables to pass - how do I get row_indices and col_indices from the 
> dof_indices?

What do you mean by "not the correct variables to pass"? To me your
assembly routines seems correct. Your matrix ui_ve_matrix has
local_dof_indices.size() rows and neighbor_dof_indices.size() columns,
which is exactly the dimension the distribute_local_to_global function
expects. So I can't really see any flaw with this problem. Is some kind
of exception thrown (there might still be a bug in that distribute_l_t_g
function, we haven't been using it so much yet)? How is the sparsity
pattern of your matrix obtained - did you use
make_flux_sparsity_pattern?

Best,
Martin

_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii

Reply via email to