MFEM  v4.5.1
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
elasticity_gradient_operator.cpp
Go to the documentation of this file.
1 // Copyright (c) 2010-2022, Lawrence Livermore National Security, LLC. Produced
2 // at the Lawrence Livermore National Laboratory. All Rights reserved. See files
3 // LICENSE and NOTICE for details. LLNL-CODE-806117.
4 //
5 // This file is part of the MFEM library. For more information and source code
6 // availability visit https://mfem.org.
7 //
8 // MFEM is free software; you can redistribute it and/or modify it under the
9 // terms of the BSD-3 license. We welcome feedback and contributions, see file
10 // CONTRIBUTING.md for details.
11 
13 #include "elasticity_operator.hpp"
14 
15 namespace mfem
16 {
18  : Operator(op.Height()), elasticity_op_(op) {}
19 
21 {
23 }
24 
26  Vector &Ke_diag, Vector &K_diag_local, Vector &K_diag) const
27 {
28  static_cast<ElasticityOperator &>(elasticity_op_)
29  .AssembleGradientDiagonal(Ke_diag, K_diag_local, K_diag);
30 }
31 
32 } // namespace mfem
void Mult(const Vector &x, Vector &y) const override
Operator application: y=A(x).
void AssembleGradientDiagonal(Vector &Ke_diag, Vector &K_diag_local, Vector &K_diag) const
Vector data type.
Definition: vector.hpp:60
Abstract operator.
Definition: operator.hpp:24
void GradientMult(const Vector &dX, Vector &Y) const
Multiply the linearization of the residual R(U) wrt to the current state U by a perturbation dX...