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< 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