Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
Public Member Functions | |
generic, public | init init_from_json |
Interface for initializing the MMA object. | |
generic, public | init init_from_components |
Interface for initializing the MMA object. | |
procedure, pass(this), public | init_from_json (this, x, n, m, json, scale, auto_scale) |
CPU update function, runs one iteration of MMA. | |
procedure, pass(this), public | init_from_components (this, x, n, m, a0, a, c, d, xmin, xmax, max_iter, epsimin, asyinit, asyincr, asydecr, bcknd, subsolver) |
Initialize the mma object based on the attributes from the json file. | |
procedure, pass(this), public | free (this) |
Deallocate mma object. | |
procedure, pass(this), public | get_n (this) |
Get the number of design variables (nloc) | |
procedure, pass(this), public | get_m (this) |
Get the number of constriants. | |
procedure, pass(this), public | get_residumax (this) |
Get L^{inf} norm (Max Norm) of the KKT conditions. | |
procedure, pass(this), public | get_residunorm (this) |
Get L^{2} norm (Euclidean Norm) of the KKT conditions. | |
procedure, pass(this), public | get_max_iter (this) |
Get the maximum number of iterations for the mma_subsolve inner loop. | |
generic, public | update update_vector |
generic, public | update update_cpu |
generic, public | update update_device |
procedure, pass(this) | update_vector (this, iter, x, df0dx, fval, dfdx) |
Call the update function based on the backend. | |
procedure, pass(this) | update_cpu mma_update_cpu |
procedure, pass(this) | update_device mma_update_device |
generic, public | kkt kkt_vector |
generic, public | kkt kkt_cpu |
generic, public | kkt kkt_device |
procedure, pass(this) | kkt_vector (this, x, df0dx, fval, dfdx) |
Call the KKT ckeck function based on the backend. | |
procedure, pass(this) | kkt_cpu mma_kkt_cpu |
procedure, pass(this) | kkt_device mma_kkt_device |
Public Attributes | |
integer | m |
integer | max_iter |
real(kind=rp) | a0 |
real(kind=rp) | f0val |
real(kind=rp) | asyinit |
real(kind=rp) | asyincr |
real(kind=rp) | asydecr |
real(kind=rp) | epsimin |
real(kind=rp) | residumax |
real(kind=rp) | residunorm |
type(vector_t) | xold1 |
type(vector_t) | xold2 |
type(vector_t) | low |
type(vector_t) | upp |
type(vector_t) | alpha |
type(vector_t) | beta |
type(vector_t) | a |
type(vector_t) | c |
type(vector_t) | d |
type(vector_t) | xmax |
type(vector_t) | xmin |
logical | is_initialized = .false. |
logical | is_updated = .false. |
character(len=:), allocatable | bcknd |
character(len=:), allocatable | subsolver |
type(vector_t) | p0j |
type(vector_t) | q0j |
type(matrix_t) | pij |
type(matrix_t) | qij |
type(vector_t) | bi |
real(kind=rp) | z |
real(kind=rp) | zeta |
type(vector_t) | y |
type(vector_t) | lambda |
type(vector_t) | s |
type(vector_t) | mu |
type(vector_t) | xsi |
type(vector_t) | eta |
procedure, pass(this), public mma::mma_t::free | ( | class(mma_t), intent(inout) | this | ) |
procedure, pass(this), public mma::mma_t::get_m | ( | class(mma_t), intent(in) | this | ) |
procedure, pass(this), public mma::mma_t::get_max_iter | ( | class(mma_t), intent(in) | this | ) |
procedure, pass(this), public mma::mma_t::get_n | ( | class(mma_t), intent(in) | this | ) |
procedure, pass(this), public mma::mma_t::get_residumax | ( | class(mma_t), intent(in) | this | ) |
procedure, pass(this), public mma::mma_t::get_residunorm | ( | class(mma_t), intent(in) | this | ) |
procedure, pass(this), public mma::mma_t::init_from_components | ( | class(mma_t), intent(inout) | this, |
real(kind=rp), dimension(n), intent(in) | x, | ||
integer, intent(in) | n, | ||
integer, intent(in) | m, | ||
real(kind=rp), intent(in) | a0, | ||
real(kind=rp), dimension(m), intent(in) | a, | ||
real(kind=rp), dimension(m), intent(in) | c, | ||
real(kind=rp), dimension(m), intent(in) | d, | ||
real(kind=rp), dimension(n), intent(in) | xmin, | ||
real(kind=rp), dimension(n), intent(in) | xmax, | ||
integer, intent(in), optional | max_iter, | ||
real(kind=rp), intent(in), optional | epsimin, | ||
real(kind=rp), intent(in), optional | asyinit, | ||
real(kind=rp), intent(in), optional | asyincr, | ||
real(kind=rp), intent(in), optional | asydecr, | ||
character(len=:), intent(in), allocatable | bcknd, | ||
character(len=:), intent(in), allocatable | subsolver | ||
) |
procedure, pass(this), public mma::mma_t::init_from_json | ( | class(mma_t), intent(inout) | this, |
real(kind=rp), dimension(n), intent(in) | x, | ||
integer, intent(in) | n, | ||
integer, intent(in) | m, | ||
type(json_file), intent(inout) | json, | ||
real(kind=rp), intent(out) | scale, | ||
logical, intent(out) | auto_scale | ||
) |
procedure, pass(this) mma::mma_t::kkt_vector | ( | class(mma_t), intent(inout) | this, |
type(vector_t), intent(inout) | x, | ||
type(vector_t), intent(inout) | df0dx, | ||
type(vector_t), intent(inout) | fval, | ||
type(matrix_t), intent(inout) | dfdx | ||
) |
procedure, pass(this) mma::mma_t::update_vector | ( | class(mma_t), intent(inout) | this, |
integer, intent(in) | iter, | ||
type(vector_t), intent(inout) | x, | ||
type(vector_t), intent(inout) | df0dx, | ||
type(vector_t), intent(inout) | fval, | ||
type(matrix_t), intent(inout) | dfdx | ||
) |