Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
O
openfpm_numerics
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Environments
Analytics
Analytics
CI / CD
Code Review
Insights
Issue
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
openfpm
openfpm_numerics
Commits
58741708
Commit
58741708
authored
Jul 12, 2017
by
incardon
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixing interpolation Bug
parent
ce49653e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
15 deletions
+15
-15
src/Solvers/petsc_solver.hpp
src/Solvers/petsc_solver.hpp
+2
-1
src/interpolation/interpolation.hpp
src/interpolation/interpolation.hpp
+13
-14
No files found.
src/Solvers/petsc_solver.hpp
View file @
58741708
...
...
@@ -28,6 +28,7 @@
enum
AMG_type
{
NONE_AMG
,
HYPRE_AMG
,
PETSC_AMG
,
TRILINOS_ML
...
...
@@ -141,7 +142,7 @@ class petsc_solver<double>
openfpm
::
vector
<
solv_bench_info
>
bench
;
//! Type of the algebraic multi-grid preconditioner
AMG_type
atype
;
AMG_type
atype
=
NONE_AMG
;
//! Block size
int
block_sz
=
0
;
...
...
src/interpolation/interpolation.hpp
View file @
58741708
...
...
@@ -125,7 +125,7 @@ struct inte_template
vector
&
vd
,
const
grid_dist_lin_dx
&
k_dist
,
iterator
&
key_p
,
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
vector
::
dims
,
np
)],
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
np
,
vector
::
dims
)],
const
size_t
&
key
)
{
mul_inte
<
typename
std
::
remove_reference
<
decltype
(
gd
.
template
get
<
prp_g
>(
k_dist
))
>::
type
>::
value
(
gd
.
template
get
<
prp_g
>(
k_dist
),
a_int
[
key
],
vd
.
template
getProp
<
prp_v
>(
key_p
));
...
...
@@ -161,7 +161,7 @@ struct inte_template<np,prp_g,prp_v,inte_m2p>
vector
&
vd
,
const
grid_dist_lin_dx
&
k_dist
,
iterator
&
key_p
,
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
vector
::
dims
,
np
)],
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
np
,
vector
::
dims
)],
const
size_t
&
key
)
{
mul_inte
<
typename
std
::
remove_reference
<
decltype
(
gd
.
template
get
<
prp_g
>(
k_dist
))
>::
type
>::
value
(
vd
.
template
getProp
<
prp_v
>(
key_p
),
a_int
[
key
],
gd
.
template
get
<
prp_g
>(
k_dist
));
...
...
@@ -188,7 +188,7 @@ struct calculate_aint
*
*/
static
inline
void
value
(
size_t
(
&
sz
)[
vector
::
dims
],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
vector
::
dims
,
np
)],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
np
,
vector
::
dims
)],
typename
vector
::
stype
(
&
a
)[
vector
::
dims
][
np
])
{
grid_sm
<
vector
::
dims
,
void
>
gs
(
sz
);
...
...
@@ -230,7 +230,7 @@ struct calculate_aint<2,vector,np>
*
*/
static
inline
void
value
(
size_t
(
&
sz
)[
vector
::
dims
],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
vector
::
dims
,
np
)],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
np
,
vector
::
dims
)],
typename
vector
::
stype
(
&
a
)[
vector
::
dims
][
np
])
{
size_t
s
=
0
;
...
...
@@ -265,7 +265,7 @@ struct calculate_aint<3,vector,np>
*
*/
static
inline
void
value
(
size_t
(
&
sz
)[
vector
::
dims
],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
vector
::
dims
,
np
)],
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
np
,
vector
::
dims
)],
typename
vector
::
stype
(
&
a
)[
vector
::
dims
][
np
])
{
size_t
s
=
0
;
...
...
@@ -406,12 +406,12 @@ struct inte_calc_impl
grid
&
gd
,
const
typename
vector
::
stype
(
&
dx
)[
vector
::
dims
],
typename
vector
::
stype
(
&
xp
)[
vector
::
dims
],
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)],
typename
vector
::
stype
(
&
a_int
)[
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)],
typename
vector
::
stype
(
&
a
)[
vector
::
dims
][
kernel
::
np
],
typename
vector
::
stype
(
&
x
)[
vector
::
dims
][
kernel
::
np
],
size_t
(
&
sz
)[
vector
::
dims
],
const
CellList
<
vector
::
dims
,
typename
vector
::
stype
,
Mem_fast
,
shift
<
vector
::
dims
,
typename
vector
::
stype
>>
&
geo_cell
,
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)
>>
&
offsets
)
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)
>>
&
offsets
)
{
auto
key_p
=
it
.
get
();
...
...
@@ -470,8 +470,7 @@ struct inte_calc_impl
size_t
lin_base
=
gs_info
.
LinId
(
base
);
#pragma omp simd
for
(
size_t
i
=
0
;
i
<
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)
;
i
++
)
for
(
size_t
i
=
0
;
i
<
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)
;
i
++
)
{
size_t
lin
=
offsets
.
get
(
sub
).
ele
[
k
]
+
lin_base
;
k_dist_lin
.
getKeyRef
()
=
lin
;
...
...
@@ -539,7 +538,7 @@ class interpolate
* \param sz kernel stencil points in each direction
*
*/
void
calculate_the_offsets
(
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)
>>
&
offsets
,
size_t
(
&
sz
)[
vector
::
dims
])
void
calculate_the_offsets
(
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)
>>
&
offsets
,
size_t
(
&
sz
)[
vector
::
dims
])
{
offsets
.
resize
(
gd
.
getN_loc_grid
());
...
...
@@ -656,7 +655,7 @@ public:
sz
[
i
]
=
kernel
::
np
;
// Precalculate the offset for each sub-sub-domain
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)
>>
offsets
;
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)
>>
offsets
;
calculate_the_offsets
(
offsets
,
sz
);
...
...
@@ -667,7 +666,7 @@ public:
typename
vector
::
stype
x
[
vector
::
dims
][
kernel
::
np
];
typename
vector
::
stype
a
[
vector
::
dims
][
kernel
::
np
];
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)];
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)];
auto
it
=
vd
.
getDomainIterator
();
...
...
@@ -725,13 +724,13 @@ public:
sz
[
i
]
=
kernel
::
np
;
// Precalculate the offset for each sub-sub-domain
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)
>>
offsets
;
openfpm
::
vector
<
agg_arr
<
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)
>>
offsets
;
calculate_the_offsets
(
offsets
,
sz
);
// grid_cpu<vector::dims,aggregate<typename vector::stype>> a_int(sz);
// a_int.setMemory();
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
vector
::
dims
,
kernel
::
np
)];
typename
vector
::
stype
a_int
[
openfpm
::
math
::
pow
(
kernel
::
np
,
vector
::
dims
)];
auto
it
=
vd
.
getDomainIterator
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment