1148 Commits

Author SHA1 Message Date
9ef713ecb8 DOMAINS: Change real variables to double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 09:09:52 -03:00
0e551e998c MPITOOLS: Change real variables to double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 09:08:59 -03:00
cd966f764c MESH: Change real variables to double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 09:03:28 -03:00
40f0909b1d INTERPOLATIONS: Change real variables to double precision.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 09:01:21 -03:00
d8c0b0d5f7 PARAMETERS: Change argument type in get_parameter_real().
We are working with double precision, so this subroutine should return a
real value with double precision too.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-04 08:58:27 -03:00
9c72999d5b BOUNDARIES: Fix edge direction in 2D boundaries_specific().
In 2D we don't have face neighbor pointers, so we have to use edge
neighbor pointers to find those which are not associated, so we can
apply specific boundary conditions.  This fixes the calculation of
the edge neighbor direction.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-03 12:16:25 -03:00
b4e838d80a INTERPOLATIONS: Add 5th order CRWENO reconstruction.
This is 5th order compact reconstruction using implicit solver and
characterized by 10 time smaller errors comparing to explicit 5th order
WENO reconstruction.

Several methods to calculate stencil weights have been added too.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-08-01 12:05:12 -03:00
ffd814d357 BLOCKS: Nullify parent's neighbor pointers in refine_block().
We need to nullify parent's neighbor pointers after finishing its
refinement process, otherwise they can point to unallocated blocks
causing the failure of job restart.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-28 19:06:14 -03:00
9f8c490ce0 REFINEMENT: Extend the region for refinement criterion.
Now we calculate the refinement criterion over a region which is larger
than the block domain by one cell. It should allow to detect incoming
gradients earlier and result in gradents entering the already
refined block.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 12:46:23 -03:00
1395712472 BLOCKS: Remove all remainings after old %neigh pointers.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 12:39:40 -03:00
7a93ac16e0 BLOCKS: Rewrite check_block_neighbors().
This debuggin fuctions checks face, edge, and corner pointers and check
the corresponding pointers of the pointed neighbors, if they are
consistent, i.e. if they point to each other.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 12:20:49 -03:00
c1e5721fd4 DOMAINS: Remove initializarion of %neigh in setup_domain_default().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:09:21 -03:00
943d2d19ed BLOCKS: Rewrite iterate_over_neighbors() and remove iterate_over_face().
We can point all neighbors directly now, so it is enough to loop over
all of them.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:09:21 -03:00
49b3469ede IO: Do not store/restore %neigh pointers anymore.
These pointers won't be used anymore, and have been replaced by %faces,
%edges, and %corners.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:09:21 -03:00
b19352cb5e BOUNDARIES: Remove old boundary subroutines.
All subroutines which use %neigh field of meta block have been removed,
since the new format using %faces, %edges, and %corners is completed.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:09:21 -03:00
8d78e3c099 BOUNDARIES: Rewrite flux update subroutines.
This patch rewrites two subroutines boundary_fluxes() and related
block_update_flux() in order to use new pointers (faces in 3D and edges
in 2D). It also signficantly simplifies block_update_flux() comparing to
previous version correct_flux().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:08:51 -03:00
2d8ce74616 BOUNDARIES: Correct argument descriptions in block_boundary_specific().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:08:46 -03:00
fa41c2a96e BOUNDARIES: Skip periodic boundaries in boundaries_specific().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:08:40 -03:00
e79a64c5a5 BOUNDARIES: Reimplement specific boundary conditions.
This patch introduces specific boundary conditions for new neighbor
pointers.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-24 00:08:25 -03:00
7d81648cdf IO: Put attribute subroutines in interfaces.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 22:13:48 -03:00
478adea863 IO: Restore face, edge, and corner pointers from restart file.
All neighbor pointers, face, edge, and corners are properly
restored from restart files during job restart.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 16:42:13 -03:00
8caa16c236 IO: Store face, edge, and corner pointers in restart file.
All neighbor pointers, face, edge, and corners are stored in restart
files in group 'metablocks'.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 16:22:29 -03:00
aae27192df IO: Put all read subroutines in interface definition.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 16:02:50 -03:00
1c8ca86d5d IO: Put write all subroutines in interface definition.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 15:33:38 -03:00
ba6b6c13ac BOUNDARIES: Call face boundary subroutines in boundary_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 08:59:50 -03:00
24436a0150 BOUNDARIES: Fix MPI exchange IDs and correct comments.
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 08:56:09 -03:00
6461e353cb BOUNDARIES: Add subroutine boundaries_face_prolong().
This subroutine scans over all leafs and update their face boundaries
prolongating lower level neighbors to higher level blocks.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 08:30:44 -03:00
c91faac5f4 BOUNDARIES: Add subroutine boundaries_face_restrict().
This subroutine scans over all leafs and update their face boundaries
restricting higher level neighbors to lower level ones.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 08:21:26 -03:00
7a9922facd BOUNDARIES: Add subroutine boundaries_face_copy().
This subroutine scans over all leafs and update their face boundaries if
both blocks lay on the same level.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 08:09:22 -03:00
b3d587727a BOUNDARIES: Add subroutine block_face_prolong().
This subroutine extracts the face region from the domain of input
variable array by prolongating it to output array.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 07:55:02 -03:00
5fd6d9d664 BOUNDARIES: Add subroutine block_face_restrict().
This subroutine extracts the face region from the domain of input
variable array by restricting it to output array.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 07:48:43 -03:00
fc34acfed0 BOUNDARIES: Add subroutine block_face_copy().
This subroutine extracts the face region from the domain of input
variable array by copying it to output array.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 07:47:29 -03:00
b94bcf472c BLOCKS: Add 3D neighbor' pointers update in derefine_block().
This adds the neighbor' pointer update in 3D case in derefine_block().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 04:23:49 -03:00
5268d1eac9 BLOCKS: Add 3D neighbor pointer update in derefine_block().
This adds the neighbor pointer update in 3D case in derefine_block().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 04:21:01 -03:00
847a202285 BLOCKS: Add 3D neighbor' pointers update in refine_block().
This adds the neighbor' pointer update in 3D case in refine_block().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 04:17:11 -03:00
c3f12c2984 BLOCKS: Add 3D neighbor pointer update in refine_block().
This adds the neighbor pointer update in 3D case in refine_block().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 04:12:26 -03:00
94262bd3a2 BLOCKS: Remove unnecessary variables in refine_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 04:04:30 -03:00
ebed23ef71 BLOCKS: Rewrite 2D neighbor' pointers update in derefine_block().
This update of 2D neighbor' pointers for derefined block iterates
over corners instead of updating each neighbor's pointer
explicitely. It updates both, edge and corner neighbor pointers
of connected neighbors at once.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:51:00 -03:00
939f3106cb BLOCKS: Rewrite 2D neighbor pointers update in derefine_block().
This update of 2D neighbor pointers for derefined block iterates over
corners instead of updating each neighbor pointer explicitely. It
updates both, edge and corner neighbor pointers at once.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:50:42 -03:00
2b9513e776 BLOCKS: Rewrite 2D neighbor' pointers update in refine_block().
This update of 2D neighbor' pointers iterates over corners instead
of updating each neighbor's pointer explicitely. It updates both,
edge and corner neighbor pointers of connected neighbors at once.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:36:04 -03:00
5f932ff906 BLOCKS: Add missing variables in refine_block().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:35:09 -03:00
1f7e65b359 BLOCKS: Rewrite 2D neighbor pointers update in refine_block().
This update of 2D neighbor pointers iterates over corners instead of
updating each neighbor pointer explicitely. It updates both, edge and
corner neighbor pointers at once.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:25:06 -03:00
75653bf226 BLOCKS: Remove 3D face neighbor pointer update in refine_block().
This non-working update of the face neighbor pointers will be replaced.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-22 03:15:57 -03:00
85f72fe1e0 BLOCKS: Don't set interior corner pointers if neighbor at lower level.
If we refine a block, and the neighbor lays at the same level of the
parent, do not assign the child's interior corner pointer. Those
pointers are null then.

This is not a problem for corner boundary update, since this corner
is updated in boundaries_edge_prolong, therefore all corners of the
finer blocks are fully consisten with their neighbors.

This also removes unnecessary condition check in
boundaries_corner_prolong().

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 19:03:53 -03:00
518f12b19e BOUNDARIES: Call boundaries_edge_prolong() in boundary_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 13:26:31 -03:00
65cb4e747d BOUNDARIES: Add subroutine boundaries_edge_prolong().
This subroutine scans over all leaf blocks and their edge neighbor
pointers and updates edge boundary regions from neighbors at lower
levels.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 13:25:32 -03:00
62e7235a3a BOUNDARIES: Implement block_edge_prolong().
This subroutine takes the variable array of the neighbor, prolongs
it and extracts the edge region corresponding to the edge position.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 13:24:30 -03:00
89df65f754 BOUNDARIES: Call boundaries_edge_restrict() in boundary_variables().
Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 12:50:01 -03:00
3ef963eda4 BOUNDARIES: Add subroutine boundaries_edge_restrict().
This subroutines scans over all leaf blocks and their edge neighbor
pointers and updates edge boundary regions from neighbors at higher
level.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 12:48:52 -03:00
110c29a487 BOUNDARIES: Implement block_edge_restrict().
This subroutines takes the variable array of the neighbor, restricts
it and extracts the edge region corresponding to the edge position.

Signed-off-by: Grzegorz Kowal <grzegorz@amuncode.org>
2014-07-15 12:38:54 -03:00