MAST
level_set_reinitialization_transient_assembly.h
Go to the documentation of this file.
1 /*
2  * MAST: Multidisciplinary-design Adaptation and Sensitivity Toolkit
3  * Copyright (C) 2013-2019 Manav Bhatia
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18  */
19 
20 #ifndef __mast__level_set_reinitialization_transient_assembly__
21 #define __mast__level_set_reinitialization_transient_assembly__
22 
23 // MAST includes
25 
26 
27 namespace MAST {
28 
31 
32  public:
33 
35 
37 
43  void set_reference_solution(const libMesh::NumericVector<Real>& sol);
44 
45  void clear_reference_solution(const libMesh::NumericVector<Real>& sol) {
46 
47  _ref_sol = nullptr;
48  }
49 
54  virtual void
55  residual_and_jacobian (const libMesh::NumericVector<Real>& X,
56  libMesh::NumericVector<Real>* R,
57  libMesh::SparseMatrix<Real>* J,
58  libMesh::NonlinearImplicitSystem& S);
59 
60 
61  protected:
62 
63  const libMesh::NumericVector<Real>* _ref_sol;
64  };
65 }
66 
67 
68 #endif // __mast__level_set_reinitialization_transient_assembly__
void clear_reference_solution(const libMesh::NumericVector< Real > &sol)
virtual void residual_and_jacobian(const libMesh::NumericVector< Real > &X, libMesh::NumericVector< Real > *R, libMesh::SparseMatrix< Real > *J, libMesh::NonlinearImplicitSystem &S)
function that assembles the matrices and vectors quantities for nonlinear solution ...
void set_reference_solution(const libMesh::NumericVector< Real > &sol)
For reinitialization to , the solution before initialization is used to calculate the source and velo...