Hi!

I think the problem you have is that the destructor of  Sparsity pattern 
has been called, however a variable of this class is yet in use by a 
Sparse Matrix, for example.

Best regards
Isa

[EMAIL PROTECTED] wrote:
> Dear All,
>
> Could we use block sparsity pattern again the same class?
>
> For example,
>
> I am solving the problem separated into two parts.
>
> One is for solving stoke equation, the other is for solving othres.
>
> In order to reduce the consumption of memory, I was supposed to separate
> into two sections, But, if I set as :
>
> BlockSparsityPattern sp;
>
> When I solve the stokes equation, I would like to generate pattern for u-u
> ,u-p, p-u couplings into sp sparsity pattern, After solving stokes
> equation, I also generate only for mass matrix with same sparsity
> pattern(sp).
>
> But, I found the error like
>
> ---------------------------------------------------------
>
> An error occurred in line <103> of file <source/subscriptor.cc> in function
>     virtual dealii::Subscriptor::~Subscriptor()
> The violated condition was:
>     counter == 0
> The name and call sequence of the exception was:
>     ExcInUse (counter, object_info->name(), infostring)
> Additional Information:
> Object of class N6dealii15SparsityPatternE is still used by 1 other objects.
>   from Subscriber SparseMatrix
>
> Stacktrace:
> -----------
> #0  /home/miranus/ysh/deal.II/lib/libbase.g.so:
> dealii::Subscriptor::~Subscriptor()
> #1  /home/miranus/ysh/deal.II/lib/liblac.g.so:
> dealii::SparsityPattern::~SparsityPattern()
> #2  /home/miranus/ysh/deal.II/lib/liblac.g.so:
> dealii::BlockSparsityPatternBase<dealii::SparsityPattern>::reinit(unsigned
> int, unsigned int)
> #3  /home/miranus/ysh/deal.II/lib/libdeal_II_2d.g.so:
> dealii::BlockSparsityPattern::reinit(unsigned int, unsigned int)
> #4  /home/miranus/ysh/deal.II/lib/liblac.g.so:
> dealii::BlockSparsityPattern::copy_from(dealii::BlockCompressedSetSparsityPattern
> const&)
> #5  ./testNoDG: StokOldrydB<2>::MakeSparseMatrix(unsigned int)
> #6  ./testNoDG: StokOldrydB<2>::assembleSysOldrodBNODG(unsigned int)
> #7  ./testNoDG: StokOldrydB<2>::run()
> #8  ./testNoDG: main
> --------------------------------------------------------
>
> Could we generate twice with same name of sparsity pattern/
>
> If I separate sparsitypatter name like sp0 , sp1 and then generate them
> each other, Total memory consumption is the sum of sp0, sp1?
>
> for example, If memory consumption of sp0 is 100 bytes, sp1 is 150 bytes,
> total occupied memory for a generation of sparsity pattern is 250 bytes?
>
> If then, I have a problem of soring out to reduce memory problem.
>
> Could you give a advice?
>
> How could we reinitialize the SparsityPattern? and so on..
>
>
>
>
>
>
> _______________________________________________
>   


_______________________________________________

Reply via email to