Fortran array memory layout: (1,1), (2,1) (3,1) (1,2) (2,2) (3,2) (1,3) (2,3) (3,3) C++ array memory layout: [0][0], [0][1], [0][2], [1][0], [1][1], [1][2], [2][0], [2][1], [2][2].
59 int nnode = elem->n_nodes();
71 mooseError(
"Scaling factors other than unity are not yet supported");
73 mooseError(
"All coupled variables must be full order lagrangian");
114 mooseError(
"All auxiliary variables must be full order Lagrangian");
142 if (do_residual && do_jacobian)
144 else if (!do_residual && do_jacobian)
146 else if (do_residual && !do_jacobian)
167 std::vector<Real> times{time - dt, time - dt};
169 std::array<Real, 8> energy;
170 int jelem = elem->id() + 1;
173 int npredf = nvar_aux;
183 std::copy(statev_old.begin(), statev_old.end(),
_statev_copy.begin());
std::array< std::map< dof_id_type, std::vector< Real > >, 2 > _statev
virtual Real & time() const
bool hasVector(const std::string &tag_name) const
TagID systemMatrixTag() const override
virtual void get(const std::vector< numeric_index_type > &index, Number *values) const
void mooseError(Args &&... args)
std::vector< Real > _all_udotdot_dof_values
std::vector< Real > _statev_copy
state variable copy
int _nstatev
stateful data
FEProblemBase & _fe_problem
std::vector< dof_id_type > _var_dof_indices
dof indices of all coupled variables
std::vector< Real > _all_aux_var_dof_increments
void addResiduals(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
const NumericVector< Number > *const & currentSolution() const override
std::vector< Real > _aux_var_values_to_uel
virtual bool hasMatrix(TagID tag) const
std::vector< dof_id_type > _aux_var_dof_indices
virtual Assembly & assembly(const THREAD_ID tid, const unsigned int sys_num) override
std::vector< Real > _coords
void addJacobian(Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
std::vector< Real > _all_udot_dof_values
std::size_t _statev_index_current
std::vector< Real > _all_dof_increments
DenseMatrix< Real > _local_ke
DenseVector< Real > _local_re
virtual const NumericVector< Number > *const & currentSolution() const override final
std::vector< dof_id_type > _all_dof_indices
virtual NumericVector< Number > * solutionUDot()
std::vector< Real > _all_aux_var_dof_values
unsigned int number() const
std::vector< Real > & get_values()
TagID residualVectorTag() const override
std::vector< Real > _props
props
AbaqusUserElement & _uel_uo
reference to the userobject (to access parameters)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const AbaqusUserElement::uel_t & _uel
have a reference to the UEL plugin here
NonlinearSystemBase & _sys
Current nonlinear system.
const int _jtype
Abaqus element type.
const std::vector< const MooseVariableFieldBase * > & _aux_variables
void resize(const unsigned int new_m, const unsigned int new_n)
IntRange< T > make_range(T beg, T end)
std::vector< Real > _all_dof_values
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
std::size_t _statev_index_old
std::vector< dof_id_type > _all_aux_var_dof_indices
NumericVector< Number > & solutionOld()
virtual Real & dt() const
AuxiliarySystem * _aux_sys
Auxiliary system object.
auto index_range(const T &sizable)
const std::vector< const MooseVariableFieldBase * > & _variables
std::array< int, 5 > _lflags
parameters for the UEL plugin
const unsigned int _dim
The dimension of the mesh, e.g. 3 for hexes and tets, 2 for quads and tris.