-
Notifications
You must be signed in to change notification settings - Fork 912
[WIP] fix multigrid agglomeration #2375
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
bigfooted
wants to merge
54
commits into
develop
Choose a base branch
from
fix_multigrid_agglomeration
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2,667
−481
Open
Changes from all commits
Commits
Show all changes
54 commits
Select commit
Hold shift + click to select a range
23ac38b
initial commit
bigfooted a47c0f4
fix vector
bigfooted f846cbb
update agglomeration
bigfooted f2fb97e
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 70a0638
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 711ba29
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 1953dfc
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 19f6e79
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 6d23aae
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted ee86d12
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 8e14cf5
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 320eb82
Merge branch 'fix_multigrid_agglomeration' of https://github.com/su2c…
bigfooted ca7edea
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted 6fbef92
testing agglomeration
bigfooted d55bd72
update 3D agglomeration
bigfooted c364dc4
update 3D agglomeration
bigfooted 768aa92
update 3D agglomeration
bigfooted 35dbdae
update opdi
bigfooted 767bd2a
update with commented cout
bigfooted 9e6e791
update agglomeration, aggressive settings
bigfooted 6d42a49
add EULER_WALLS by checking straightness
bigfooted 4495da6
remove some commented cout statements
bigfooted c38a633
remove some commented cout statements
bigfooted d355978
add convergence check and early exit for pre,post and correction smoo…
bigfooted 9642b94
implicit lines
bigfooted cbaa3f7
implicit lines info
bigfooted 3c4f8ab
Merge branch 'develop' into fix_multigrid_agglomeration
bigfooted d28ce20
adaptive damping factor for pre-smoothing
bigfooted 9f19341
fix cross-lines in implicit line agglomeration
bigfooted 691a73c
Reduce MGLEVELS based on mesh size
bigfooted 85456c8
change default nr of implicit lines
bigfooted 99d6712
adaptive CFL on multigrid
bigfooted 2c40c9c
run precommit
bigfooted 944a2fc
fix gauss elimination NaN
bigfooted fb8e4ee
fix euler wall agglomeration
bigfooted b91a992
precommit
bigfooted 6332e28
CFL adapt oscillation detection
bigfooted 7b53432
simpler CFL adapt oscillation detection
bigfooted 2013392
asdd XOR flipflop again
bigfooted 6cfdbf0
modify cfl on coarser meshes
bigfooted 4cd4784
introduce LSQ slope computation
bigfooted 0699ce4
add explanation
bigfooted 0657fe2
fix CFL min value
bigfooted 2b2996a
make adaptcfl more modular
bigfooted 15ed48d
make adaptcfl more modular 2
bigfooted 0d89d93
make adaptcfl more modular 3
bigfooted d2df3c7
make adaptcfl more modular 4
bigfooted 94b48fc
make adaptcfl more modular 5
bigfooted fd7a201
make adaptcfl more modular 6
bigfooted 29eecfc
some MG MPI changes
bigfooted 1945bdd
Merge branch 'fix_multigrid_agglomeration' of https://github.com/su2c…
bigfooted 2468017
some more MG MPI fixes
bigfooted e3beb48
mpi global cfl
bigfooted 5328e9c
some mpi mg cleanup - this also has no agglomeration on the rank inte…
bigfooted File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,36 +28,37 @@ | |
| #pragma once | ||
|
|
||
| #include "CGeometry.hpp" | ||
| class CMultiGridQueue; | ||
|
|
||
| /*! | ||
| * \class CMultiGridGeometry | ||
| * \brief Class for defining the multigrid geometry, the main delicated part is the | ||
| * \brief Class for defining the multigrid geometry, the main delegated part is the | ||
| * agglomeration stage, which is done in the declaration. | ||
| * \author F. Palacios | ||
| */ | ||
| class CMultiGridGeometry final : public CGeometry { | ||
| private: | ||
| /*! | ||
| * \brief Determine if a CVPoint van be agglomerated, if it have the same marker point as the seed. | ||
| * \brief Determine if a CVPoint can be agglomerated, if it has the same marker point as the seed. | ||
| * \param[in] CVPoint - Control volume to be agglomerated. | ||
| * \param[in] marker_seed - Marker of the seed. | ||
| * \param[in] fine_grid - Geometrical definition of the problem. | ||
| * \param[in] config - Definition of the particular problem. | ||
| * \return <code>TRUE</code> or <code>FALSE</code> depending if the control volume can be agglomerated. | ||
| */ | ||
| bool SetBoundAgglomeration(unsigned long CVPoint, short marker_seed, const CGeometry* fine_grid, | ||
| bool SetBoundAgglomeration(unsigned long CVPoint, vector<short> marker_seed, const CGeometry* fine_grid, | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need to pass information about all markers on the seed node (number of markers and index of marker) |
||
| const CConfig* config) const; | ||
|
|
||
| /*! | ||
| * \brief Determine if a can be agglomerated using geometrical criteria. | ||
| * \brief Determine if a Point can be agglomerated using geometrical criteria. | ||
| * \param[in] iPoint - Seed point. | ||
| * \param[in] fine_grid - Geometrical definition of the problem. | ||
| * \param[in] config - Definition of the particular problem. | ||
| */ | ||
| bool GeometricalCheck(unsigned long iPoint, const CGeometry* fine_grid, const CConfig* config) const; | ||
|
|
||
| /*! | ||
| * \brief Determine if a CVPoint van be agglomerated, if it have the same marker point as the seed. | ||
| * \brief Determine if a CVPoint can be agglomerated, if it has the same marker point as the seed. | ||
| * \param[out] Suitable_Indirect_Neighbors - List of Indirect Neighbours that can be agglomerated. | ||
| * \param[in] iPoint - Seed point. | ||
| * \param[in] Index_CoarseCV - Index of agglomerated point. | ||
|
|
@@ -66,6 +67,32 @@ class CMultiGridGeometry final : public CGeometry { | |
| void SetSuitableNeighbors(vector<unsigned long>& Suitable_Indirect_Neighbors, unsigned long iPoint, | ||
| unsigned long Index_CoarseCV, const CGeometry* fine_grid) const; | ||
|
|
||
| /*! | ||
| * \brief Agglomerate high-aspect ratio interior cells along implicit lines starting from wall vertices. | ||
| * \param[in,out] Index_CoarseCV - Reference to the current coarse control volume index that will be | ||
| * incremented as new coarse CVs are created. | ||
| * \param[in] fine_grid - Geometrical definition of the problem (fine grid). | ||
| * \param[in] config - Definition of the particular problem. | ||
| * \param[in,out] MGQueue_InnerCV - Queue used for STEP 2; agglomerated points will be removed from it. | ||
| */ | ||
| void AgglomerateImplicitLines(unsigned long& Index_CoarseCV, const CGeometry* fine_grid, const CConfig* config, | ||
| CMultiGridQueue& MGQueue_InnerCV); | ||
|
|
||
| /*! | ||
| * \brief Compute surface straightness for multigrid geometry. | ||
| * \param[in] config - Definition of the particular problem. | ||
| */ | ||
| void ComputeSurfStraightness(CConfig* config); | ||
|
|
||
| /*! | ||
| * \brief Compute local curvature at a boundary vertex on Euler wall. | ||
| * \param[in] fine_grid - Fine grid geometry. | ||
| * \param[in] iPoint - Point index. | ||
| * \param[in] iMarker - Marker index. | ||
| * \return Maximum angle (in degrees) between this vertex normal and adjacent vertex normals. | ||
| */ | ||
| su2double ComputeLocalCurvature(const CGeometry* fine_grid, unsigned long iPoint, unsigned short iMarker) const; | ||
|
|
||
| public: | ||
| /*--- This is to suppress Woverloaded-virtual, omitting it has no negative impact. ---*/ | ||
| using CGeometry::SetBoundControlVolume; | ||
|
|
@@ -154,4 +181,11 @@ class CMultiGridGeometry final : public CGeometry { | |
| * \param[in] val_marker - Index of the boundary marker. | ||
| */ | ||
| void SetMultiGridWallTemperature(const CGeometry* fine_grid, unsigned short val_marker) override; | ||
|
|
||
| /*! | ||
| * \brief Validate that halo CV coordinates match corresponding domain CVs on remote ranks (debug feature). | ||
| * \param[in] config - Definition of the particular problem. | ||
| * \param[in] iMesh - Multigrid level for reporting. | ||
| */ | ||
| void ValidateHaloCoordinates(const CConfig* config, unsigned short iMesh) const; | ||
| }; | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.