Utility type to define the Identity operator. Note that the type-bound procedures
for matvec
and rmatvec
do not have to be defined by the user.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(lightkrylov_timer), | public | :: | matvec_timer | = | lightkrylov_timer('matvec timer') | ||
type(lightkrylov_timer), | public | :: | rmatvec_timer | = | lightkrylov_timer('rmatvec timer') |
Wrapper for matvec including the counter increment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop_rsp), | intent(inout) | :: | self | |||
class(abstract_vector_rsp), | intent(in) | :: | vec_in | |||
class(abstract_vector_rsp), | intent(out) | :: | vec_out |
Wrapper for rmatvec including the counter increment
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop_rsp), | intent(inout) | :: | self | |||
class(abstract_vector_rsp), | intent(in) | :: | vec_in | |||
class(abstract_vector_rsp), | intent(out) | :: | vec_out |
Finalize timers and print complete history_info
Finalize the matvec/rmatvec timers Note: Wrapper of the corresponding routine from lightkrylov_timer
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop), | intent(inout) | :: | self |
Return matvec/rmatvec counter value
Getter function for the number of matvec calls
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop), | intent(in) | :: | self | |||
logical, | intent(in) | :: | trans |
matvec or rmatvec? |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Id_rsp), | intent(inout) | :: | self | |||
class(abstract_vector_rsp), | intent(in) | :: | vec_in | |||
class(abstract_vector_rsp), | intent(out) | :: | vec_out |
Print current timing data
Getter routine to print the current timing information for matvec/rmatvec Note: Wrapper of the corresponding routine from lightkrylov_timer
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop), | intent(inout) | :: | self | |||
logical, | intent(in), | optional | :: | trans |
matvec or rmatvec? |
Reset matvec/rmatvec counter
Setter routine to reset the matvec counter and reset timers
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop), | intent(inout) | :: | self | |||
logical, | intent(in) | :: | trans |
matvec or rmatvec? |
||
character(len=*), | intent(in) | :: | procedure |
name of the caller routine |
||
integer, | intent(in), | optional | :: | counter |
optional flag to reset to an integer other than zero. |
|
logical, | intent(in), | optional | :: | reset_timer |
optional flag to reset also the timers |
|
logical, | intent(in), | optional | :: | soft_reset |
optional flag to choose whether to save previous timing data (default: .true.) |
|
logical, | intent(in), | optional | :: | clean_timer |
optional flag to choose whether to fully reset the timer (default: .false.) |
Reset current timing data
Setter routine to reset the matvec/rmatvec timers Note: Wrapper of the corresponding routine from lightkrylov_timer
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(abstract_linop), | intent(inout) | :: | self | |||
logical, | intent(in), | optional | :: | trans |
matvec or rmatvec? |
|
logical, | intent(in), | optional | :: | soft | ||
logical, | intent(in), | optional | :: | clean |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Id_rsp), | intent(inout) | :: | self | |||
class(abstract_vector_rsp), | intent(in) | :: | vec_in | |||
class(abstract_vector_rsp), | intent(out) | :: | vec_out |