Skip to content

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:

  • mesh A valid pointer to a cpppetsc::Mesh 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 cpppetsc::Matrix & mass,
    const cpppetsc::Matrix & 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 cpppetsc::Matrix & mass,
    const cpppetsc::Matrix & damping,
    LocalForceVectorAssembler assembleForceVector,
    const 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 cpppetsc::Matrix & mass,
    const cpppetsc::Matrix & damping,
    const DistributedForceVectorAssembler & assembleForceVector,
    const 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