IgANet
IGAnets - Isogeometric Analysis Networks
Loading...
Searching...
No Matches
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase > Class Template Referenceabstract

IgANet. More...

#include </home/runner/work/iganet/iganet/include/iganet/net/v1/iganet.hpp>

Inheritance diagram for iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >:
iganet::utils::Serializable iganet::utils::FullQualifiedName IgANet< Optimizer, GeometryMap, Variable > poisson< Optimizer, GeometryMap, Variable >

Public Types

using Base = IgABase< GeometryMap, Variable >
 Base type.
 
using optimizer_options_type = optimizer_options_type< Optimizer >::type
 Type of the optimizer options.
 
using optimizer_type = Optimizer
 Type of the optimizer.
 

Public Member Functions

 IgANet (const IgANetOptions &defaults={}, iganet::Options< typename Base::value_type > options=iganet::Options< typename Base::value_type >{})
 Default constructor.
 

Protected Attributes

IgANetGenerator< typename Base::value_typenet_
 IgANet generator.
 
std::unique_ptr< optimizer_typeopt_
 Optimizer.
 
IgANetOptions options_
 Options.
 

Additional Inherited Members

- Private Member Functions inherited from iganet::utils::Serializable
virtual ~Serializable ()=default
 Destructor.
 
- Private Member Functions inherited from iganet::utils::FullQualifiedName
virtual ~FullQualifiedName ()=default
 
virtual const std::string & name () const noexcept
 Returns the full qualified name of the object.
 
- Private Attributes inherited from iganet::utils::FullQualifiedName
at::optional< std::string > name_
 String storing the full qualified name of the object.
 

Detailed Description

template<typename Optimizer, typename GeometryMap, typename Variable, template< typename, typename > typename IgABase = IgABase>
requires OptimizerType<Optimizer> && FunctionSpaceType<GeometryMap> && FunctionSpaceType<Variable>
class iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >

IgANet.

This class implements the core functionality of IgANets.

Member Typedef Documentation

◆ Base

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
using iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::Base = IgABase<GeometryMap, Variable>

Base type.

◆ optimizer_options_type

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
using iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizer_options_type = optimizer_options_type<Optimizer>::type

Type of the optimizer options.

◆ optimizer_type

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
using iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizer_type = Optimizer

Type of the optimizer.

Constructor & Destructor Documentation

◆ IgANet() [1/5]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::IgANet ( const IgANetOptions defaults = {},
iganet::Options< typename Base::value_type options = iganet::Options<typename Base::value_type>{} 
)
inlineexplicit

Default constructor.

Parameters
defaultsValue of defaults.
optionsConfiguration options.

◆ IgANet() [2/5]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
template<std::size_t NumCoeffs>
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::IgANet ( const std::vector< int64_t > &  layers,
const std::vector< std::vector< std::any > > &  activations,
std::array< int64_t, NumCoeffs >  numCoeffs,
IgANetOptions  defaults = {},
iganet::Options< typename Base::value_type options = iganet::Options<typename Base::value_type>{} 
)
inline

Constructor: number of layers, activation functions, and number of spline coefficients (same for geometry map and variables)

Template Parameters
NumCoeffsTemplate parameter NumCoeffs.
Parameters
layersValue of layers.
activationsValue of activations.
numCoeffsValue of numCoeffs.
defaultsValue of defaults.
optionsConfiguration options.

◆ IgANet() [3/5]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
template<std::size_t... NumCoeffs>
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::IgANet ( const std::vector< int64_t > &  layers,
const std::vector< std::vector< std::any > > &  activations,
std::tuple< std::array< int64_t, NumCoeffs >... >  numCoeffs,
IgANetOptions  defaults = {},
iganet::Options< typename Base::value_type options = iganet::Options<typename Base::value_type>{} 
)
inline

Provides the IgANet operation.

Template Parameters
NumCoeffsTemplate parameter NumCoeffs.
Parameters
layersValue of layers.
activationsValue of activations.
numCoeffsValue of numCoeffs.
defaultsValue of defaults.
optionsConfiguration options.

◆ IgANet() [4/5]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
template<std::size_t GeometryMapNumCoeffs, std::size_t VariableNumCoeffs>
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::IgANet ( const std::vector< int64_t > &  layers,
const std::vector< std::vector< std::any > > &  activations,
std::array< int64_t, GeometryMapNumCoeffs >  geometryMapNumCoeffs,
std::array< int64_t, VariableNumCoeffs >  variableNumCoeffs,
IgANetOptions  defaults = {},
iganet::Options< typename Base::value_type options = iganet::Options<typename Base::value_type>{} 
)
inline

Constructor: number of layers, activation functions, and number of spline coefficients (different for geometry map and variables)

Template Parameters
GeometryMapNumCoeffsTemplate parameter GeometryMapNumCoeffs.
VariableNumCoeffsTemplate parameter VariableNumCoeffs.
Parameters
layersValue of layers.
activationsValue of activations.
geometryMapNumCoeffsValue of geometryMapNumCoeffs.
variableNumCoeffsValue of variableNumCoeffs.
defaultsValue of defaults.
optionsConfiguration options.

◆ IgANet() [5/5]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
template<std::size_t... GeometryMapNumCoeffs, std::size_t... VariableNumCoeffs>
iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::IgANet ( const std::vector< int64_t > &  layers,
const std::vector< std::vector< std::any > > &  activations,
std::tuple< std::array< int64_t, GeometryMapNumCoeffs >... >  geometryMapNumCoeffs,
std::tuple< std::array< int64_t, VariableNumCoeffs >... >  variableNumCoeffs,
IgANetOptions  defaults = {},
iganet::Options< typename Base::value_type options = iganet::Options<typename Base::value_type>{} 
)
inline

Provides the IgANet operation.

Parameters
layersValue of layers.
activationsValue of activations.
geometryMapNumCoeffsValue of geometryMapNumCoeffs.
variableNumCoeffsValue of variableNumCoeffs.
defaultsValue of defaults.
optionsConfiguration options.

Member Function Documentation

◆ epoch()

◆ eval()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::eval ( )
inline

Evaluate IgANet.

◆ inputs()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
virtual torch::Tensor iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::inputs ( int64_t  epoch) const
inlinevirtual

Returns the network inputs.

In the default implementation the inputs are the controll points of the geometry and the reference spline objects. This behavior can be changed by overriding this virtual function in a derived class.

Parameters
epochValue of epoch.
Returns
Result of the operation.

◆ load()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::load ( const std::string &  filename,
const std::string &  key = "iganet" 
)
inline

Loads the IgANet from file.

Parameters
filenamePath of the file to process.
keySerialization key.

◆ loss()

◆ named_parameters()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
torch::OrderedDict< std::string, torch::Tensor > iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::named_parameters ( ) const
inlinenoexcept

Returns a constant reference to the named parameters of the IgANet object.

Returns
Result of the operation.

◆ net() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
IgANetGenerator< typename Base::value_type > & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::net ( )
inline

Returns a non-constant reference to the IgANet generator.

Returns
Result of the operation.

◆ net() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
const IgANetGenerator< typename Base::value_type > & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::net ( ) const
inline

Returns a constant reference to the IgANet generator.

Returns
Result of the operation.

◆ nparameters()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
std::size_t iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::nparameters ( ) const
inlinenoexcept

Returns the total number of parameters of the IgANet object.

Returns
Result of the operation.

◆ operator!=()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
bool iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::operator!= ( const IgANet< Optimizer, GeometryMap, Variable, IgABase > &  other) const
inline

Returns true if both IgANet objects are different.

Parameters
otherSecond input value.
Returns
Result of the operation.

◆ operator==()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
bool iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::operator== ( const IgANet< Optimizer, GeometryMap, Variable, IgABase > &  other) const
inline

Returns true if both IgANet objects are the same.

Parameters
otherSecond input value.
Returns
Result of the operation.

◆ optimizer() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
optimizer_type & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizer ( )
inline

Returns a non-constant reference to the optimizer.

Returns
Result of the operation.

◆ optimizer() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
const optimizer_type & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizer ( ) const
inline

Returns a constant reference to the optimizer.

Returns
Result of the operation.

◆ optimizerOptions() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
optimizer_options_type & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptions ( std::size_t  param_group = 0)
inline

Returns a non-constant reference to the optimizer options.

Parameters
param_groupValue of param_group.
Returns
Result of the operation.

◆ optimizerOptions() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
const optimizer_options_type & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptions ( std::size_t  param_group = 0) const
inline

Returns a constant reference to the optimizer options.

Parameters
param_groupValue of param_group.
Returns
Result of the operation.

◆ optimizerOptionsReset() [1/4]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptionsReset ( const optimizer_options_type options)
inline

Resets the optimizer options.

Parameters
optionsConfiguration options.

◆ optimizerOptionsReset() [2/4]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptionsReset ( const optimizer_options_type options,
std::size_t  param_group 
)
inline

Resets the optimizer options.

Parameters
optionsConfiguration options.
param_groupValue of param_group.

◆ optimizerOptionsReset() [3/4]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptionsReset ( optimizer_options_type &&  options)
inline

Resets the optimizer options.

Parameters
optionsConfiguration options.

◆ optimizerOptionsReset() [4/4]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerOptionsReset ( optimizer_options_type &&  options,
std::size_t  param_group 
)
inline

Resets the optimizer options.

Parameters
optionsConfiguration options.
param_groupValue of param_group.

◆ optimizerReset() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerReset ( bool  resetOptions = true)
inline

Resets the optimizer.

Parameters
[in]resetOptionsFlag to indicate whether the optimizer options should be resetted.

◆ optimizerReset() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::optimizerReset ( const optimizer_options_type optimizerOptions)
inline

Resets the optimizer.

Parameters
optimizerOptionsValue of optimizerOptions.

◆ options() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
auto & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::options ( )
inline

Returns a non-constant reference to the options structure.

Returns
Result of the operation.

◆ options() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
const auto & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::options ( ) const
inline

Returns a constant reference to the options structure.

Returns
Result of the operation.

◆ parameters()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
std::vector< torch::Tensor > iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::parameters ( ) const
inlinenoexcept

Returns a constant reference to the parameters of the IgANet object.

Returns
Result of the operation.

◆ pretty_print()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::pretty_print ( std::ostream &  os) const
inlineoverridevirtualnoexcept

Returns a string representation of the IgANet object.

Parameters
osOutput stream.

Implements iganet::utils::Serializable.

◆ read()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
torch::serialize::InputArchive & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::read ( torch::serialize::InputArchive &  archive,
const std::string &  key = "iganet" 
)
inline

Loads the IgANet from a torch::serialize::InputArchive object.

Parameters
archiveSerialization archive.
keySerialization key.
Returns
Result of the operation.

◆ register_parameter()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
torch::Tensor & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::register_parameter ( std::string  name,
torch::Tensor  tensor,
bool  requires_grad = true 
)
inline

Registers a parameter.

Parameters
nameValue of name.
tensorTensor to process.
requires_gradValue of requires_grad.
Returns
Result of the operation.

◆ save()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::save ( const std::string &  filename,
const std::string &  key = "iganet" 
) const
inline

Saves the IgANet to file.

Parameters
filenamePath of the file to process.
keySerialization key.

◆ to_json()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
nlohmann::json iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::to_json ( ) const
inlineoverridevirtual

Returns the IgANet object as JSON object.

Returns
Result of the operation.

Implements iganet::utils::Serializable.

◆ train() [1/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
virtual void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::train ( )
inlinevirtual

Trains the IgANet.

◆ train() [2/2]

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
template<typename DataLoader >
void iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::train ( DataLoader &  loader)
inline

Trains the IgANet.

Template Parameters
DataLoaderTemplate parameter DataLoader.
Parameters
loaderTraining data loader.

◆ write()

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
torch::serialize::OutputArchive & iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::write ( torch::serialize::OutputArchive &  archive,
const std::string &  key = "iganet" 
) const
inline

Writes the IgANet into a torch::serialize::OutputArchive object.

Parameters
archiveSerialization archive.
keySerialization key.
Returns
Result of the operation.

Member Data Documentation

◆ net_

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
IgANetGenerator<typename Base::value_type> iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::net_
protected

IgANet generator.

◆ opt_

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
std::unique_ptr<optimizer_type> iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::opt_
protected

Optimizer.

◆ options_

template<typename Optimizer , typename GeometryMap , typename Variable , template< typename, typename > typename IgABase = IgABase>
IgANetOptions iganet::v1::IgANet< Optimizer, GeometryMap, Variable, IgABase >::options_
protected

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