Namespace ae108::solve
Namespace List > ae108 > solve
Minimize the total energy. More...
Namespaces
Type | Name |
---|---|
namespace | dynamics |
Classes
Type | Name |
---|---|
struct | AffineTransform <class Policy> |
class | DynamicSolver <class Assembler, class NonlinearSolver> |
class | GeneralizedNonlinearSolver <class Assembler> |
class | GeneralizedTAOSolver <class Assembler> |
struct | InconsistentBoundaryConditionsException |
struct | InvalidVertexException |
class | LeastSquaresSolver <class Assembler> |
class | NonlinearSolver <class Assembler> |
class | TAOSolver <class Assembler> |
class | TransformingSolver <class Assembler> |
Public Functions
Detailed Description
Library for minimizing the assembled total energy using PETSc’s solvers or optimizers as provided by cpppetsc
.
Public Functions Documentation
function apply
Applies the affine transform to an input vector x
and returns the result.
template<class Policy>
cpppetsc::distributed < typename AffineTransform < Policy >::vector_type > ae108::solve::apply (
const AffineTransform < Policy > & transform,
const cpppetsc::distributed < typename AffineTransform < Policy >::vector_type > & x
)
function apply
Applies the affine transform to an input vector x
and writes the result toout
.
template<class Policy>
void ae108::solve::apply (
const AffineTransform < Policy > & transform,
const cpppetsc::distributed < typename AffineTransform < Policy >::vector_type > & x,
cpppetsc::distributed < typename AffineTransform < Policy >::vector_type > *const out
)
function apply
template cpppetsc::distributed < typename AffineTransform < cpppetsc::SequentialComputePolicy >::vector_type > ae108::solve::apply (
const AffineTransform < cpppetsc::SequentialComputePolicy > &,
const cpppetsc::distributed < typename AffineTransform < cpppetsc::SequentialComputePolicy >::vector_type > &
)
function apply
template cpppetsc::distributed < typename AffineTransform < cpppetsc::ParallelComputePolicy >::vector_type > ae108::solve::apply (
const AffineTransform < cpppetsc::ParallelComputePolicy > &,
const cpppetsc::distributed < typename AffineTransform < cpppetsc::ParallelComputePolicy >::vector_type > &
)
function apply
template void ae108::solve::apply (
const AffineTransform < cpppetsc::SequentialComputePolicy > & transform,
const cpppetsc::distributed < typename AffineTransform < cpppetsc::SequentialComputePolicy >::vector_type > &,
cpppetsc::distributed < typename AffineTransform < cpppetsc::SequentialComputePolicy >::vector_type > * const
)
function apply
template void ae108::solve::apply (
const AffineTransform < cpppetsc::ParallelComputePolicy > & transform,
const cpppetsc::distributed < typename AffineTransform < cpppetsc::ParallelComputePolicy >::vector_type > &,
cpppetsc::distributed < typename AffineTransform < cpppetsc::ParallelComputePolicy >::vector_type > * const
)
function boundaryConditionsToEquations
Converts a vector of GeneralizedMeshBoundaryCondition
s to a matrixA
and a vectorb
that encodes the boundary conditions. The boundary conditions are satisfied forx
if and only ifAx + b = 0
.
template<class Policy>
AffineTransform < Policy > ae108::solve::boundaryConditionsToEquations (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < Policy > > > & boundaryConditions,
const cpppetsc::Mesh < Policy > & mesh
)
Exception:
- InvalidVertexException if the boundary conditions contain a vertex that does not exist.
function boundaryConditionsToEquations
template AffineTransform < cpppetsc::SequentialComputePolicy > ae108::solve::boundaryConditionsToEquations (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < cpppetsc::SequentialComputePolicy > > > &,
const cpppetsc::Mesh < cpppetsc::SequentialComputePolicy > &
)
function boundaryConditionsToEquations
template AffineTransform < cpppetsc::ParallelComputePolicy > ae108::solve::boundaryConditionsToEquations (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < cpppetsc::ParallelComputePolicy > > > &,
const cpppetsc::Mesh < cpppetsc::ParallelComputePolicy > &
)
function boundaryConditionsToTransform
Converts a vector of GeneralizedMeshBoundaryCondition
s to an affine transform that encodes the boundary conditions. More precisely, the rank of the transform satisfies the boundary conditions.
template<class Policy>
AffineTransform < Policy > ae108::solve::boundaryConditionsToTransform (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < Policy > > > & boundaryConditions,
const cpppetsc::Mesh < Policy > & mesh
)
Exception:
- InconsistentBoundaryConditionsException if a degree of degree of freedom appears as both a source and a target.
- InvalidVertexException if the boundary conditions contain a vertex that does not exist.
function boundaryConditionsToTransform
template AffineTransform < cpppetsc::SequentialComputePolicy > ae108::solve::boundaryConditionsToTransform (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < cpppetsc::SequentialComputePolicy > > > &,
const cpppetsc::Mesh < cpppetsc::SequentialComputePolicy > &
)
function boundaryConditionsToTransform
template AffineTransform < cpppetsc::ParallelComputePolicy > ae108::solve::boundaryConditionsToTransform (
const std::vector< cpppetsc::GeneralizedMeshBoundaryCondition < cpppetsc::Mesh < cpppetsc::ParallelComputePolicy > > > &,
const cpppetsc::Mesh < cpppetsc::ParallelComputePolicy > &
)
The documentation for this class was generated from the following file solve/src/include/ae108/solve/AffineTransform.h