Skip to main content
`Ctrl`+`K`

# AOCreateMemoryScalable

Creates a memory scalable application ordering using two integer arrays.

## Synopsis

    #include "petscao.h"
    PetscErrorCode AOCreateMemoryScalable(MPI_Comm comm, PetscInt napp, const PetscInt myapp[], const PetscInt mypetsc[], AO *aoout)

Collective

## Input Parameters

- comm - MPI communicator that is to share the `AO`

- napp - size of `myapp` and `mypetsc`

- myapp - integer array that defines an ordering

- mypetsc - integer array that defines another ordering (may be `NULL` to indicate the natural ordering, that is 0,1,2,3,…)

## Output Parameter

- aoout - the new application ordering

## Note

The arrays `myapp` and `mypetsc` must contain the all the integers 0 to `napp`-1 with no duplicates; that is there cannot be any “holes” in the indices. Use `AOCreateMapping()` or `AOCreateMappingIS()` if you wish to have “holes” in the indices. Comparing with `AOCreateBasic()`, this routine trades memory with message communication.

## See Also

Application Orderings, Low-level Vector Communication, `AO`, `AOCreateMemoryScalableIS()`, `AODestroy()`, `AOPetscToApplication()`, `AOApplicationToPetsc()`

## Level

beginner

## Location

src/vec/is/ao/impls/memscalable/aomemscalable.c

Index of all AO routines
Table of Contents for all manual pages
Index of all manual pages