if (m == 0)
return;
- static GrowingVectorMemory<typename Range::BlockType> vector_memory;
+ GrowingVectorMemory<typename Range::BlockType> vector_memory;
typename VectorMemory<typename Range::BlockType>::Pointer tmp (vector_memory);
diagonal_inverse.block(0, 0).vmult_add(v.block(0), u.block(0));
ExcDimensionMismatch(diagonal_inverse.n_block_cols(), m));
Assert(v.n_blocks() == m, ExcDimensionMismatch(v.n_blocks(), m));
Assert(u.n_blocks() == m, ExcDimensionMismatch(u.n_blocks(), m));
- static GrowingVectorMemory<typename Range::BlockType> vector_memory;
+ GrowingVectorMemory<typename Range::BlockType> vector_memory;
typename VectorMemory<typename Range::BlockType>::Pointer tmp (vector_memory);
if (m == 0)
distribute_constraints_linear_operator(constraint_matrix, linop);
const auto Ct = transpose_operator(C);
- static GrowingVectorMemory<Domain> vector_memory;
+ GrowingVectorMemory<Domain> vector_memory;
typename VectorMemory<Domain>::Pointer k (vector_memory);
linop.reinit_domain_vector(*k, /*bool fast=*/ false);
constraint_matrix.distribute(*k);
return_op.vmult = [first_op, second_op](Range &v, const Domain &u)
{
- static GrowingVectorMemory<Intermediate> vector_memory;
+ GrowingVectorMemory<Intermediate> vector_memory;
typename VectorMemory<Intermediate>::Pointer i (vector_memory);
second_op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_op.vmult_add = [first_op, second_op](Range &v, const Domain &u)
{
- static GrowingVectorMemory<Intermediate> vector_memory;
+ GrowingVectorMemory<Intermediate> vector_memory;
typename VectorMemory<Intermediate>::Pointer i (vector_memory);
second_op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_op.Tvmult = [first_op, second_op](Domain &v, const Range &u)
{
- static GrowingVectorMemory<Intermediate> vector_memory;
+ GrowingVectorMemory<Intermediate> vector_memory;
typename VectorMemory<Intermediate>::Pointer i (vector_memory);
first_op.reinit_domain_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_op.Tvmult_add = [first_op, second_op](Domain &v, const Range &u)
{
- static GrowingVectorMemory<Intermediate> vector_memory;
+ GrowingVectorMemory<Intermediate> vector_memory;
typename VectorMemory<Intermediate>::Pointer i (vector_memory);
first_op.reinit_domain_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_op.vmult_add =
[op, &solver, &preconditioner](Range &v, const Domain &u)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer v2 (vector_memory);
op.reinit_range_vector(*v2, /*bool omit_zeroing_entries =*/ false);
return_op.Tvmult_add =
[op, &solver, &preconditioner](Range &v, const Domain &u)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer v2 (vector_memory);
op.reinit_range_vector(*v2, /*bool omit_zeroing_entries =*/ false);
void apply_with_intermediate_storage(Function function, Range &v,
const Domain &u, bool add)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer i (vector_memory);
i->reinit(v, /*bool omit_zeroing_entries =*/true);
return_comp.apply = [op, comp](Domain &v)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer i (vector_memory);
op.reinit_domain_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_comp.apply_add = [op, comp](Domain &v)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer i (vector_memory);
op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_comp.apply = [op, comp](Domain &v)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer i (vector_memory);
op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true);
return_comp.apply_add = [op, comp](Domain &v)
{
- static GrowingVectorMemory<Range> vector_memory;
+ GrowingVectorMemory<Range> vector_memory;
typename VectorMemory<Range>::Pointer i (vector_memory);
op.reinit_range_vector(*i, /*bool omit_zeroing_entries =*/ true);
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// Initialize intermediate vector
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// These operators may themselves be transposed or not, so we let them
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// Initialize intermediate vector
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// These operators may themselves be transposed or not, so we let them
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// Initialize intermediate vector
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// These operators may themselves be transposed or not, so we let them
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// Initialize intermediate vector
{
// Duplicated from LinearOperator::operator*
// TODO: Template the constructor on GrowingVectorMemory vector type?
- static GrowingVectorMemory<GVMVectorType> vector_memory;
+ GrowingVectorMemory<GVMVectorType> vector_memory;
GVMVectorType *i = vector_memory.alloc();
// These operators may themselves be transposed or not, so we let them