Class ae108::solve::DynamicSolver
template <class Assembler, class NonlinearSolver>
ClassList > ae108 > solve > DynamicSolver
Public Types
Type | Name |
---|---|
typedef typename nonlinearsolver_type::BoundaryConditionContainer | BoundaryConditionContainer |
typedef std::function< void(const cpppetsc::distributed< vector_type > &, double, cpppetsc::distributed< vector_type > *)> | DistributedForceVectorAssembler |
typedef std::function< void(const cpppetsc::distributed< vector_type > &, double, matrix_type *)> | DistributedStiffnessMatrixAssembler |
typedef std::function< void(const cpppetsc::local< vector_type > &, double, cpppetsc::local< vector_type > *)> | LocalForceVectorAssembler |
typedef std::function< void(const cpppetsc::local< vector_type > &, double, matrix_type *)> | LocalStiffnessMatrixAssembler |
typedef typename mesh_type::matrix_type | matrix_type |
typedef typename assembly::MeshTypeTrait< Assembler >::type | mesh_type |
typedef NonlinearSolver | nonlinearsolver_type |
typedef dynamics::DynamicState< cpppetsc::distributed< vector_type > > | state_type |
typedef typename mesh_type::vector_type | vector_type |
Public Functions
Type | Name |
---|---|
DynamicSolver (const mesh_type * mesh, const nonlinearsolver_type * solver, const dynamics::NewmarkParameters & newmark) |
|
state_type | computeSolution (const BoundaryConditionContainer & boundaryConditions, state_type state, const double time, const double timestep, const matrix_type & mass, const matrix_type & damping, const Assembler *const assembler) const Calls another overload of computeSolution passing on all arguments except assembler. The local force vector and the local stiffness matrix are computed using assembler's assembleForceVector and assembleStiffnessMatrix methods. |
state_type | computeSolution (const BoundaryConditionContainer & boundaryConditions, state_type state, const double time, const double timestep, const matrix_type & mass, const matrix_type & damping, LocalForceVectorAssembler assembleForceVector, LocalStiffnessMatrixAssembler assembleStiffnessMatrix) const Calls another overload of computeSolution passing on all arguments except the assembling functions. The global force vector and the global stiffness matrix are computed using the local contributions. |
state_type | computeSolution (const BoundaryConditionContainer & boundaryConditions, state_type state, const double time, const double timestep, const matrix_type & mass, const matrix_type & damping, DistributedForceVectorAssembler assembleForceVector, DistributedStiffnessMatrixAssembler assembleStiffnessMatrix) const Computes the solution using the provided nonlinear solver type. |
Public Types Documentation
typedef BoundaryConditionContainer
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::BoundaryConditionContainer = typename nonlinearsolver_type::BoundaryConditionContainer;
typedef DistributedForceVectorAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::DistributedForceVectorAssembler = std::function<void(const cpppetsc::distributed<vector_type> &, double, cpppetsc::distributed<vector_type> *)>;
typedef DistributedStiffnessMatrixAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::DistributedStiffnessMatrixAssembler = std::function<void( const cpppetsc::distributed<vector_type> &, double, matrix_type *)>;
typedef LocalForceVectorAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::LocalForceVectorAssembler = std::function<void(const cpppetsc::local<vector_type> &, double, cpppetsc::local<vector_type> *)>;
typedef LocalStiffnessMatrixAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::LocalStiffnessMatrixAssembler = std::function<void( const cpppetsc::local<vector_type> &, double, matrix_type *)>;
typedef matrix_type
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::matrix_type = typename mesh_type::matrix_type;
typedef mesh_type
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::mesh_type = typename assembly::MeshTypeTrait<Assembler>::type;
typedef nonlinearsolver_type
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::nonlinearsolver_type = NonlinearSolver;
typedef state_type
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::state_type = dynamics::DynamicState<cpppetsc::distributed<vector_type> >;
typedef vector_type
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::vector_type = typename mesh_type::vector_type;
Public Functions Documentation
function DynamicSolver
explicit ae108::solve::DynamicSolver::DynamicSolver (
const mesh_type * mesh,
const nonlinearsolver_type * solver,
const dynamics::NewmarkParameters & newmark
)
Parameters:
mesh
A valid pointer to a mesh_type instance.solver
A valid pointer to a nonlinearsolver_type instance.
function computeSolution [1/3]
Calls another overload of computeSolution passing on all arguments except assembler. The local force vector and the local stiffness matrix are computed using assembler's assembleForceVector and assembleStiffnessMatrix methods.
state_type ae108::solve::DynamicSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
state_type state,
const double time,
const double timestep,
const matrix_type & mass,
const matrix_type & damping,
const Assembler *const assembler
) const
Parameters:
boundaryConditions
The local essential boundary conditions to apply.state
The state to start iterating at.time
This will be used to configure the assembler.timestep
The current timestep.mass
The mass matrix.damping
The damping matrix.assembler
Valid nonzero pointer.
function computeSolution [2/3]
Calls another overload of computeSolution passing on all arguments except the assembling functions. The global force vector and the global stiffness matrix are computed using the local contributions.
state_type ae108::solve::DynamicSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
state_type state,
const double time,
const double timestep,
const matrix_type & mass,
const matrix_type & damping,
LocalForceVectorAssembler assembleForceVector,
LocalStiffnessMatrixAssembler assembleStiffnessMatrix
) const
Parameters:
boundaryConditions
The local essential boundary conditions to apply.state
The state to start iterating at.time
This will be used to configure the assembler.timestep
The current timestep.mass
The mass matrix.damping
The damping matrix.assembleForceVector
A valid callable. It will be called to assemble the local force vector.assembleStiffnessMatrix
A valid callable. It will be called to assemble the local stiffness matrix.
function computeSolution [3/3]
Computes the solution using the provided nonlinear solver type.
state_type ae108::solve::DynamicSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
state_type state,
const double time,
const double timestep,
const matrix_type & mass,
const matrix_type & damping,
DistributedForceVectorAssembler assembleForceVector,
DistributedStiffnessMatrixAssembler assembleStiffnessMatrix
) const
Parameters:
boundaryConditions
The local essential boundary conditions to apply.state
The state to start iterating at.time
This will be used to configure the assembler.timestep
The current timestep.mass
The mass matrix.damping
The damping matrix.assembleForceVector
A valid callable. It will be called to assemble the global force vector.assembleStiffnessMatrix
A valid callable. It will be called to assemble the global stiffness matrix.
The documentation for this class was generated from the following file solve/src/include/ae108/solve/DynamicSolver.h