IgANet
IGAnets - Isogeometric Analysis Networks
Loading...
Searching...
No Matches
iganet::EZSolverBase< GeometryMap, Variable > Class Template Reference

Easy-to-use solver base class. More...

#include </home/runner/work/iganet/iganet/include/solver/ezsolver.hpp>

Inheritance diagram for iganet::EZSolverBase< GeometryMap, Variable >:
iganet::IgASolver< std::tuple< GeometryMap >, std::tuple< Variable > > iganet::IgANetCustomizable< std::tuple< GeometryMap >, std::tuple< Variable > > iganet::IgABase< typename, typename, typename > iganet::utils::FullQualifiedName iganet::EZInterpolation< GeometryMap, Variable > iganet::EZSolver< GeometryMap, Variable >

Public Member Functions

template<std::size_t GeometryMapNumCoeffs, std::size_t VariableNumCoeffs>
 EZSolverBase (const std::array< int64_t, GeometryMapNumCoeffs > &geometryMapNumCoeffs, const std::array< int64_t, VariableNumCoeffs > &variableNumCoeffs)
 Constructor.
 
auto const & collPts () const
 Returns a constant reference to the collocation points.
 
auto & G ()
 Returns a non-constant reference to the geometry.
 
auto const & G () const
 Returns a constant reference to the geometry.
 
void init () override
 Initializes the solver.
 
auto & u ()
 Returns a non-constant reference to the variable.
 
auto const & u () const
 Returns a constant reference to the variable.
 
- Public Member Functions inherited from iganet::IgASolver< std::tuple< GeometryMap >, std::tuple< Variable > >
virtual void assemble ()
 Assembles the solver.
 
virtual void assembleLhs ()=0
 Assembles the left-hand side of the solver.
 
virtual void assembleRhs ()=0
 Assembles the right-hand side of the solver.
 
constexpr auto & lhs ()
 Returns a non-constant reference to the left-hand side object.
 
constexpr const auto & lhs () const
 Returns a constant reference to the left-hand side object.
 
void pretty_print (std::ostream &os) const noexcept override
 Returns a string representation of the IgASolver object.
 
constexpr auto & rhs ()
 Returns a non-constant reference to the right-hand side object.
 
constexpr const auto & rhs () const
 Returns a constant reference to the right-hand side object.
 
torch::Tensor solve () const
 Computes the solution vector.
 

Protected Types

using Base = iganet::IgASolver< std::tuple< GeometryMap >, std::tuple< Variable > >
 Type of the base class.
 
using Customizable = iganet::IgANetCustomizable< std::tuple< GeometryMap >, std::tuple< Variable > >
 Type of the customizable class.
 

Protected Attributes

Base::template collPts_t< 0 > collPts_
 Collocation points.
 
Customizable::template input_interior_knot_indices_t< 0 > G_knot_indices_
 Knot indices of the geometry map.
 
Customizable::template input_boundary_knot_indices_t< 0 > G_knot_indices_boundary_
 Knot indices of the geometry map at the boundary.
 
Customizable::template output_interior_knot_indices_t< 0 > var_knot_indices_
 Knot indices of variables.
 
Customizable::template output_boundary_knot_indices_t< 0 > var_knot_indices_boundary_
 Knot indices of variables at the boundary.
 
- Protected Attributes inherited from iganet::IgASolver< std::tuple< GeometryMap >, std::tuple< Variable > >
torch::Tensor lhs_
 Left-hand side tensor.
 
torch::Tensor rhs_
 Right-hand side tensor.
 

Additional Inherited Members

- Public Types inherited from iganet::IgASolver< std::tuple< GeometryMap >, std::tuple< Variable > >
using Base = IgABase< std::tuple< GeometryMap >, std::tuple< Variable >, void >
 Base type.
 

Detailed Description

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
class iganet::EZSolverBase< GeometryMap, Variable >

Easy-to-use solver base class.

This abstract class implements an easy-to-use solver that takes a geometry map and a variable function space as inputs. Note that this is an abstract class. A derived class needs to implement the member functions assembleLhs and assembleRhs.

Member Typedef Documentation

◆ Base

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
using iganet::EZSolverBase< GeometryMap, Variable >::Base = iganet::IgASolver<std::tuple<GeometryMap>, std::tuple<Variable> >
protected

Type of the base class.

◆ Customizable

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
using iganet::EZSolverBase< GeometryMap, Variable >::Customizable = iganet::IgANetCustomizable<std::tuple<GeometryMap>, std::tuple<Variable> >
protected

Type of the customizable class.

Constructor & Destructor Documentation

◆ EZSolverBase()

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
template<std::size_t GeometryMapNumCoeffs, std::size_t VariableNumCoeffs>
iganet::EZSolverBase< GeometryMap, Variable >::EZSolverBase ( const std::array< int64_t, GeometryMapNumCoeffs > &  geometryMapNumCoeffs,
const std::array< int64_t, VariableNumCoeffs > &  variableNumCoeffs 
)
inline

Constructor.

Member Function Documentation

◆ collPts()

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
auto const & iganet::EZSolverBase< GeometryMap, Variable >::collPts ( ) const
inline

Returns a constant reference to the collocation points.

◆ G() [1/2]

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
auto & iganet::EZSolverBase< GeometryMap, Variable >::G ( )
inline

Returns a non-constant reference to the geometry.

◆ G() [2/2]

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
auto const & iganet::EZSolverBase< GeometryMap, Variable >::G ( ) const
inline

Returns a constant reference to the geometry.

◆ init()

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
void iganet::EZSolverBase< GeometryMap, Variable >::init ( )
inlineoverridevirtual

◆ u() [1/2]

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
auto & iganet::EZSolverBase< GeometryMap, Variable >::u ( )
inline

Returns a non-constant reference to the variable.

◆ u() [2/2]

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
auto const & iganet::EZSolverBase< GeometryMap, Variable >::u ( ) const
inline

Returns a constant reference to the variable.

Member Data Documentation

◆ collPts_

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
Base::template collPts_t<0> iganet::EZSolverBase< GeometryMap, Variable >::collPts_
protected

Collocation points.

◆ G_knot_indices_

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
Customizable::template input_interior_knot_indices_t<0> iganet::EZSolverBase< GeometryMap, Variable >::G_knot_indices_
protected

Knot indices of the geometry map.

◆ G_knot_indices_boundary_

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
Customizable::template input_boundary_knot_indices_t<0> iganet::EZSolverBase< GeometryMap, Variable >::G_knot_indices_boundary_
protected

Knot indices of the geometry map at the boundary.

◆ var_knot_indices_

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
Customizable::template output_interior_knot_indices_t<0> iganet::EZSolverBase< GeometryMap, Variable >::var_knot_indices_
protected

Knot indices of variables.

◆ var_knot_indices_boundary_

template<FunctionSpaceType GeometryMap, FunctionSpaceType Variable>
Customizable::template output_boundary_knot_indices_t<0> iganet::EZSolverBase< GeometryMap, Variable >::var_knot_indices_boundary_
protected

Knot indices of variables at the boundary.


The documentation for this class was generated from the following file: