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< cpppetsc::Vector > &, double, cpppetsc::distributed< cpppetsc::Vector > *)> | DistributedForceVectorAssembler |
| typedef std::function< void(const cpppetsc::distributed< cpppetsc::Vector > &, double, cpppetsc::Matrix *)> | DistributedStiffnessMatrixAssembler |
| typedef std::function< void(const cpppetsc::local< cpppetsc::Vector > &, double, cpppetsc::local< cpppetsc::Vector > *)> | LocalForceVectorAssembler |
| typedef std::function< void(const cpppetsc::local< cpppetsc::Vector > &, double, cpppetsc::Matrix *)> | LocalStiffnessMatrixAssembler |
| typedef NonlinearSolver | nonlinearsolver_type |
| typedef dynamics::DynamicState< cpppetsc::distributed< cpppetsc::Vector > > | state_type |
Public Functions
| Type | Name |
|---|---|
| DynamicSolver (const cpppetsc::Mesh * 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 cpppetsc::Matrix & mass, const cpppetsc::Matrix & 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 cpppetsc::Matrix & mass, const cpppetsc::Matrix & damping, LocalForceVectorAssembler assembleForceVector, const 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 cpppetsc::Matrix & mass, const cpppetsc::Matrix & damping, const DistributedForceVectorAssembler & assembleForceVector, const 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<cpppetsc::Vector> &, double, cpppetsc::distributed<cpppetsc::Vector> *)>;
typedef DistributedStiffnessMatrixAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::DistributedStiffnessMatrixAssembler = std::function<void(const cpppetsc::distributed<cpppetsc::Vector> &, double, cpppetsc::Matrix *)>;
typedef LocalForceVectorAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::LocalForceVectorAssembler = std::function<void(const cpppetsc::local<cpppetsc::Vector> &, double, cpppetsc::local<cpppetsc::Vector> *)>;
typedef LocalStiffnessMatrixAssembler
using ae108::solve::DynamicSolver< Assembler, NonlinearSolver >::LocalStiffnessMatrixAssembler = std::function<void( const cpppetsc::local<cpppetsc::Vector> &, double, cpppetsc::Matrix *)>;
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<cpppetsc::Vector> >;
Public Functions Documentation
function DynamicSolver
explicit ae108::solve::DynamicSolver::DynamicSolver (
const cpppetsc::Mesh * mesh,
const nonlinearsolver_type * solver,
const dynamics::NewmarkParameters & newmark
)
Parameters:
meshA valid pointer to a cpppetsc::Mesh 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 cpppetsc::Matrix & mass,
const cpppetsc::Matrix & 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 cpppetsc::Matrix & mass,
const cpppetsc::Matrix & damping,
LocalForceVectorAssembler assembleForceVector,
const 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 cpppetsc::Matrix & mass,
const cpppetsc::Matrix & damping,
const DistributedForceVectorAssembler & assembleForceVector,
const 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