Class ae108::solve::TAOSolver
template <class Assembler>
ClassList > ae108 > solve > TAOSolver
Public Types
Type | Name |
---|---|
typedef std::vector< cpppetsc::MeshBoundaryCondition< mesh_type > > | BoundaryConditionContainer |
typedef std::function< void(const cpppetsc::distributed< vector_type > &, double, real_type *)> | DistributedEnergyAssembler |
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, real_type *)> | LocalEnergyAssembler |
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 typename assembly::PolicyTypeTrait< Assembler >::type | policy_type |
typedef typename mesh_type::real_type | real_type |
typedef typename mesh_type::size_type | size_type |
typedef typename mesh_type::value_type | value_type |
typedef typename mesh_type::vector_type | vector_type |
Public Functions
Type | Name |
---|---|
TAOSolver (const mesh_type * mesh) |
|
cpppetsc::distributed< vector_type > | computeSolution (const BoundaryConditionContainer & boundaryConditions, cpppetsc::distributed< vector_type > initialGuess, const double time, const Assembler *const assembler) const Calls computeSolution with the default assembler calls (ie. calls assembleEnergy, assembleForceVector or assembleStiffnessMatrix). Passes on the rest of the arguments. |
cpppetsc::distributed< vector_type > | computeSolution (const BoundaryConditionContainer & boundaryConditions, cpppetsc::distributed< vector_type > initialGuess, const double time, LocalEnergyAssembler assembleEnergy, LocalForceVectorAssembler assembleForceVector, LocalStiffnessMatrixAssembler assembleStiffnessMatrix) const Calls computeSolution wrapping up the local assembler calls into distributed assembler calls. Passes on the rest of the arguments. |
cpppetsc::distributed< vector_type > | computeSolution (const BoundaryConditionContainer & boundaryConditions, cpppetsc::distributed< vector_type > initialGuess, const double time, DistributedEnergyAssembler assembleEnergy, DistributedForceVectorAssembler assembleForceVector, DistributedStiffnessMatrixAssembler assembleStiffnessMatrix) const The goal of this function is to solve E(x) = min under the condition that all the essential boundary conditions x_i = a_i are met. |
Public Types Documentation
typedef BoundaryConditionContainer
using ae108::solve::TAOSolver< Assembler >::BoundaryConditionContainer = std::vector<cpppetsc::MeshBoundaryCondition<mesh_type> >;
typedef DistributedEnergyAssembler
using ae108::solve::TAOSolver< Assembler >::DistributedEnergyAssembler = std::function<void( const cpppetsc::distributed<vector_type> &, double, real_type *)>;
typedef DistributedForceVectorAssembler
using ae108::solve::TAOSolver< Assembler >::DistributedForceVectorAssembler = std::function<void(const cpppetsc::distributed<vector_type> &, double, cpppetsc::distributed<vector_type> *)>;
typedef DistributedStiffnessMatrixAssembler
using ae108::solve::TAOSolver< Assembler >::DistributedStiffnessMatrixAssembler = std::function<void( const cpppetsc::distributed<vector_type> &, double, matrix_type *)>;
typedef LocalEnergyAssembler
using ae108::solve::TAOSolver< Assembler >::LocalEnergyAssembler = std::function<void( const cpppetsc::local<vector_type> &, double, real_type *)>;
typedef LocalForceVectorAssembler
using ae108::solve::TAOSolver< Assembler >::LocalForceVectorAssembler = std::function<void(const cpppetsc::local<vector_type> &, double, cpppetsc::local<vector_type> *)>;
typedef LocalStiffnessMatrixAssembler
using ae108::solve::TAOSolver< Assembler >::LocalStiffnessMatrixAssembler = std::function<void( const cpppetsc::local<vector_type> &, double, matrix_type *)>;
typedef matrix_type
using ae108::solve::TAOSolver< Assembler >::matrix_type = typename mesh_type::matrix_type;
typedef mesh_type
using ae108::solve::TAOSolver< Assembler >::mesh_type = typename assembly::MeshTypeTrait<Assembler>::type;
typedef policy_type
using ae108::solve::TAOSolver< Assembler >::policy_type = typename assembly::PolicyTypeTrait<Assembler>::type;
typedef real_type
using ae108::solve::TAOSolver< Assembler >::real_type = typename mesh_type::real_type;
typedef size_type
using ae108::solve::TAOSolver< Assembler >::size_type = typename mesh_type::size_type;
typedef value_type
using ae108::solve::TAOSolver< Assembler >::value_type = typename mesh_type::value_type;
typedef vector_type
using ae108::solve::TAOSolver< Assembler >::vector_type = typename mesh_type::vector_type;
Public Functions Documentation
function TAOSolver
explicit ae108::solve::TAOSolver::TAOSolver (
const mesh_type * mesh
)
Parameters:
mesh
A valid nonzero pointer to a mesh_type instance.
function computeSolution [1/3]
Calls computeSolution with the default assembler calls (ie. calls assembleEnergy, assembleForceVector or assembleStiffnessMatrix). Passes on the rest of the arguments.
cpppetsc::distributed < vector_type > ae108::solve::TAOSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
cpppetsc::distributed < vector_type > initialGuess,
const double time,
const Assembler *const assembler
) const
Parameters:
boundaryConditions
The local essential boundary conditions to apply.initialGuess
The global vector to start iterating at.time
This will be used to configure the assembler. @para assembler Valid nonzero pointer.
function computeSolution [2/3]
Calls computeSolution wrapping up the local assembler calls into distributed assembler calls. Passes on the rest of the arguments.
cpppetsc::distributed < vector_type > ae108::solve::TAOSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
cpppetsc::distributed < vector_type > initialGuess,
const double time,
LocalEnergyAssembler assembleEnergy,
LocalForceVectorAssembler assembleForceVector,
LocalStiffnessMatrixAssembler assembleStiffnessMatrix
) const
Parameters:
boundaryConditions
The local essential boundary conditions to apply.initialGuess
The global vector to start iterating at.time
This will be used to configure the assembler.assembleEnergy
A valid callable. It will be called to assemble the local energy.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 stiffness matrix.
function computeSolution [3/3]
The goal of this function is to solve E(x) = min under the condition that all the essential boundary conditions x_i = a_i are met.
cpppetsc::distributed < vector_type > ae108::solve::TAOSolver::computeSolution (
const BoundaryConditionContainer & boundaryConditions,
cpppetsc::distributed < vector_type > initialGuess,
const double time,
DistributedEnergyAssembler assembleEnergy,
DistributedForceVectorAssembler assembleForceVector,
DistributedStiffnessMatrixAssembler assembleStiffnessMatrix
) const
Remark:
Does not update internal variables.
Parameters:
boundaryConditions
The local essential boundary conditions to apply.initialGuess
The global vector to start iterating at.time
This will be used to configure the assembler.assembleEnergy
A valid callable. It will be called to assemble the distributed energy.assembleForceVector
A valid callable. It will be called to assemble the distributed force vector.assembleStiffnessMatrix
A valid callable. It will be called to assemble the stiffness matrix.
The documentation for this class was generated from the following file solve/src/include/ae108/solve/TAOSolver.h