61 integer :: arms(1:3,1:3) = reshape([0,0,0,0,0,0,0,0,0], (/3, 3/))
72 integer,
private :: dim
75 integer,
allocatable :: points(:, :)
78 type(stargeneral_arms_t) :: stargeneral
85 type(stencil_t),
intent(inout) :: this
86 integer,
intent(in) :: dim
87 integer,
intent(in) :: size
94 safe_allocate(this%points(1:this%dim, 1:size))
103 type(stencil_t),
intent(in) :: input
104 type(stencil_t),
intent(out) :: output
109 output%points = input%points
110 output%center = input%center
112 output%stargeneral%narms = input%stargeneral%narms
113 output%stargeneral%arms = input%stargeneral%arms
121 type(stencil_t),
intent(inout) :: this
125 safe_deallocate_a(this%points)
133 type(stencil_t),
intent(inout) :: st1
134 type(stencil_t),
intent(inout) :: st2
135 type(stencil_t),
intent(inout) :: stu
137 integer :: ii, jj, nstu
138 logical :: not_in_st1
142 assert(st1%dim == st2%dim)
148 stu%points(:, ii) = st1%points(:, ii)
159 if (all(st1%points(:, jj) == st2%points(:, ii)))
then
167 stu%points(:, nstu) = st2%points(:, ii)
191 if (all(this%points(:, ii) == 0)) this%center = ii
This module defines stencils used in Octopus.
subroutine, public stencil_end(this)
subroutine, public stencil_union(st1, st2, stu)
subroutine, public stencil_copy(input, output)
subroutine, public stencil_allocate(this, dim, size)
subroutine, public stencil_init_center(this)
The class representing the stencil, which is used for non-local mesh operations.