https://mooseframework.inl.gov
NEML2CentralDifference.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef NEML2_ENABLED
11 
12 #pragma once
13 
14 #include "ExplicitMixedOrder.h"
15 #include "NEML2Assembly.h"
16 #include "NEML2FEInterpolation.h"
17 
19 {
20 public:
22 
24 
25  void initialSetup() override;
26  void meshChanged() override;
27  void postSolve() override;
28 
29 protected:
30  void evaluateRHSResidual() override;
32 
35 
38 
39 private:
41  std::vector<const Elem *> _boundary_elems = {};
42 
44  std::vector<const Node *> _no_node = {};
45 
47  bool _boundary_elems_dirty = true;
48 };
49 
50 #endif // NEML2_ENABLED
std::vector< const Elem * > _boundary_elems
Empty element vector to help zero out the algebraic range.
std::vector< const Node * > _no_node
Empty node vector to help zero out the algebraic range.
NEML2Assembly * _neml2_assembly
The assembly object with cached assembly information.
const InputParameters & parameters() const
Implements a form of the central difference time integrator that calculates acceleration directly fro...
bool _boundary_elems_dirty
Whether the cached boundary element list needs rebuilding.
static InputParameters validParams()
NEML2FEInterpolation * _fe
The FE interface for getting variable values/gradients interpolated onto the finite element space...
NEML2CentralDifference(const InputParameters &parameters)
void evaluateRHSResidual() override
Evaluate the RHS residual.