Actual source code: veccreate.c
1: #ifdef PETSC_RCS_HEADER
2: static char vcid[] = "$Id: vecserialize.c,v 1.10 2000/01/10 03:18:14 knepley Exp $";
3: #endif
5: #include vecimpl.h
9: /*@C
10: VecCreate - Creates an empty vector object. The type can then be set with VecSetType(),
11: or VecSetFromOptions().
13: If you never call VecSetType() or VecSetFromOptions() it will generate an
14: error when you try to use the vector.
16: Collective on MPI_Comm
18: Input Parameter:
19: . comm - The communicator for the vector object
21: Output Parameter:
22: . vec - The vector object
24: Level: beginner
26: .keywords: vector, create
27: .seealso: VecSetType(), VecSetSizes(), VecCreateMPIWithArray(), VecCreateMPI(), VecDuplicate(),
28: VecDuplicateVecs(), VecCreateGhost(), VecCreateSeq(), VecPlaceArray()
29: @*/
30: int VecCreate(MPI_Comm comm, Vec *vec)
31: {
32: Vec v;
37: *vec = PETSC_NULL;
38: #ifndef PETSC_USE_DYNAMIC_LIBRARIES
39: VecInitializePackage(PETSC_NULL);
40: #endif
42: PetscHeaderCreate(v, _p_Vec, struct _VecOps, VEC_COOKIE, -1, "Vec", comm, VecDestroy, VecView);
43: PetscLogObjectCreate(v);
44: PetscLogObjectMemory(v, sizeof(struct _p_Vec));
45: PetscMemzero(v->ops, sizeof(struct _VecOps));
46: v->bops->publish = PETSC_NULL /* VecPublish_Petsc */;
47: v->type_name = PETSC_NULL;
49: v->map = PETSC_NULL;
50: v->data = PETSC_NULL;
51: v->n = -1;
52: v->N = -1;
53: v->bs = -1;
54: v->mapping = PETSC_NULL;
55: v->bmapping = PETSC_NULL;
56: v->array_gotten = PETSC_FALSE;
57: v->petscnative = PETSC_FALSE;
58: v->esivec = PETSC_NULL;
60: *vec = v;
61: return(0);
62: }