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:
meshA valid pointer to a mesh_type instance.solverA 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:
boundaryConditionsThe local essential boundary conditions to apply.stateThe state to start iterating at.timeThis will be used to configure the assembler.timestepThe current timestep.massThe mass matrix.dampingThe damping matrix.assemblerValid 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:
boundaryConditionsThe local essential boundary conditions to apply.stateThe state to start iterating at.timeThis will be used to configure the assembler.timestepThe current timestep.massThe mass matrix.dampingThe damping matrix.assembleForceVectorA valid callable. It will be called to assemble the local force vector.assembleStiffnessMatrixA 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:
boundaryConditionsThe local essential boundary conditions to apply.stateThe state to start iterating at.timeThis will be used to configure the assembler.timestepThe current timestep.massThe mass matrix.dampingThe damping matrix.assembleForceVectorA valid callable. It will be called to assemble the global force vector.assembleStiffnessMatrixA 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