Files
mfem/fem/plinearform.cpp
T
2020-03-09 15:36:41 -07:00

51 lines
1.2 KiB
C++

// Copyright (c) 2010-2020, Lawrence Livermore National Security, LLC. Produced
// at the Lawrence Livermore National Laboratory. All Rights reserved. See files
// LICENSE and NOTICE for details. LLNL-CODE-806117.
//
// This file is part of the MFEM library. For more information and source code
// availability visit https://mfem.org.
//
// MFEM is free software; you can redistribute it and/or modify it under the
// terms of the BSD-3 license. We welcome feedback and contributions, see file
// CONTRIBUTING.md for details.
#include "../config/config.hpp"
#ifdef MFEM_USE_MPI
#include "fem.hpp"
namespace mfem
{
void ParLinearForm::Update(ParFiniteElementSpace *pf)
{
if (pf) { pfes = pf; }
LinearForm::Update(pfes);
}
void ParLinearForm::Update(ParFiniteElementSpace *pf, Vector &v, int v_offset)
{
pfes = pf;
LinearForm::Update(pf,v,v_offset);
}
void ParLinearForm::ParallelAssemble(Vector &tv)
{
const Operator* prolong = pfes->GetProlongationMatrix();
prolong->MultTranspose(*this, tv);
}
HypreParVector *ParLinearForm::ParallelAssemble()
{
HypreParVector *tv = pfes->NewTrueDofVector();
const Operator* prolong = pfes->GetProlongationMatrix();
prolong->MultTranspose(*this, *tv);
return tv;
}
}
#endif