Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
W
waLBerla
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Martin Bauer
waLBerla
Commits
8c534baf
Commit
8c534baf
authored
5 years ago
by
Christoph Rettinger
Browse files
Options
Downloads
Patches
Plain Diff
Added field traversal option to LBM boundary handling factories
parent
c95e416e
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/lbm/boundary/factories/DefaultBoundaryHandling.h
+23
-7
23 additions, 7 deletions
src/lbm/boundary/factories/DefaultBoundaryHandling.h
src/lbm/boundary/factories/ExtendedBoundaryHandlingFactory.h
+18
-6
18 additions, 6 deletions
src/lbm/boundary/factories/ExtendedBoundaryHandlingFactory.h
with
41 additions
and
13 deletions
src/lbm/boundary/factories/DefaultBoundaryHandling.h
+
23
−
7
View file @
8c534baf
...
@@ -89,7 +89,18 @@ public:
...
@@ -89,7 +89,18 @@ public:
const
real_t
pressure0
,
const
real_t
pressure0
,
const
real_t
pressure1
)
const
real_t
pressure1
)
{
{
DefaultBoundaryHandlingFactory
factory
(
flagFieldID
,
pdfFieldID
,
flagUIDSet
,
velocity0
,
velocity1
,
pressure0
,
pressure1
);
return
addBoundaryHandlingToStorage
(
bs
,
identifier
,
flagFieldID
,
pdfFieldID
,
flagUIDSet
,
velocity0
,
velocity1
,
pressure0
,
pressure1
,
BoundaryHandling
::
Mode
::
OPTIMIZED_SPARSE_TRAVERSAL
);
}
static
BlockDataID
addBoundaryHandlingToStorage
(
const
shared_ptr
<
StructuredBlockStorage
>
&
bs
,
const
std
::
string
&
identifier
,
BlockDataID
flagFieldID
,
BlockDataID
pdfFieldID
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
Vector3
<
real_t
>
&
velocity0
,
const
Vector3
<
real_t
>
&
velocity1
,
const
real_t
pressure0
,
const
real_t
pressure1
,
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
)
{
DefaultBoundaryHandlingFactory
factory
(
flagFieldID
,
pdfFieldID
,
flagUIDSet
,
velocity0
,
velocity1
,
pressure0
,
pressure1
,
boundaryHandlingTraversalMode
);
return
bs
->
addStructuredBlockData
<
BoundaryHandling
>
(
factory
,
identifier
);
return
bs
->
addStructuredBlockData
<
BoundaryHandling
>
(
factory
,
identifier
);
}
}
...
@@ -110,8 +121,9 @@ public:
...
@@ -110,8 +121,9 @@ public:
DefaultBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
DefaultBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
Velocity
velocity0
,
const
Velocity
velocity1
,
const
Velocity
velocity0
,
const
Velocity
velocity1
,
const
real_t
pressure0
,
const
real_t
pressure1
);
const
real_t
pressure0
,
const
real_t
pressure1
,
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
);
BoundaryHandling
*
operator
()(
walberla
::
IBlock
*
const
block
,
const
walberla
::
StructuredBlockStorage
*
const
storage
)
const
;
BoundaryHandling
*
operator
()(
walberla
::
IBlock
*
const
block
,
const
walberla
::
StructuredBlockStorage
*
const
storage
)
const
;
...
@@ -124,6 +136,8 @@ private:
...
@@ -124,6 +136,8 @@ private:
Velocity
velocity0_
,
velocity1_
;
Velocity
velocity0_
,
velocity1_
;
real_t
pressure0_
,
pressure1_
;
real_t
pressure0_
,
pressure1_
;
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode_
;
};
// class DefaultBoundaryHandlingFactory
};
// class DefaultBoundaryHandlingFactory
...
@@ -143,16 +157,17 @@ template <typename LatticeModel, typename FlagFieldT >
...
@@ -143,16 +157,17 @@ template <typename LatticeModel, typename FlagFieldT >
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
DefaultBoundaryHandlingFactory
(
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
DefaultBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
Velocity
velocity0
,
const
Velocity
velocity1
,
const
Velocity
velocity0
,
const
Velocity
velocity1
,
const
real_t
pressure0
,
const
real_t
pressure1
)
:
const
real_t
pressure0
,
const
real_t
pressure1
,
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
)
:
flagField_
(
flagField
),
pdfField_
(
pdfField
),
flagUIDSet_
(
flagUIDSet
),
velocity0_
(
velocity0
),
velocity1_
(
velocity1
),
flagField_
(
flagField
),
pdfField_
(
pdfField
),
flagUIDSet_
(
flagUIDSet
),
velocity0_
(
velocity0
),
velocity1_
(
velocity1
),
pressure0_
(
pressure0
),
pressure1_
(
pressure1
)
pressure0_
(
pressure0
),
pressure1_
(
pressure1
)
,
boundaryHandlingTraversalMode_
(
boundaryHandlingTraversalMode
)
{
{
}
}
template
<
typename
LatticeModel
,
typename
FlagFieldT
>
template
<
typename
LatticeModel
,
typename
FlagFieldT
>
typename
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
BoundaryHandling
*
typename
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
BoundaryHandling
*
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
operator
()(
walberla
::
IBlock
*
const
block
,
DefaultBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
operator
()(
walberla
::
IBlock
*
const
block
,
const
walberla
::
StructuredBlockStorage
*
const
/*storage*/
)
const
const
walberla
::
StructuredBlockStorage
*
const
/*storage*/
)
const
{
{
PdfFieldLM
*
const
pdfField
=
block
->
getData
<
PdfFieldLM
>
(
pdfField_
);
PdfFieldLM
*
const
pdfField
=
block
->
getData
<
PdfFieldLM
>
(
pdfField_
);
FlagFieldT
*
const
flagField
=
block
->
getData
<
FlagFieldT
>
(
flagField_
);
FlagFieldT
*
const
flagField
=
block
->
getData
<
FlagFieldT
>
(
flagField_
);
...
@@ -167,7 +182,8 @@ DefaultBoundaryHandlingFactory<LatticeModel, FlagFieldT>::operator()( walberla::
...
@@ -167,7 +182,8 @@ DefaultBoundaryHandlingFactory<LatticeModel, FlagFieldT>::operator()( walberla::
BcSimpleUBB
(
getVelocity0BoundaryUID
(),
getVelocity0
(),
pdfField
,
velocity0_
),
BcSimpleUBB
(
getVelocity0BoundaryUID
(),
getVelocity0
(),
pdfField
,
velocity0_
),
BcSimpleUBB
(
getVelocity1BoundaryUID
(),
getVelocity1
(),
pdfField
,
velocity1_
),
BcSimpleUBB
(
getVelocity1BoundaryUID
(),
getVelocity1
(),
pdfField
,
velocity1_
),
BcSimplePressure
(
getPressure0BoundaryUID
(),
getPressure0
(),
pdfField
,
pressure0_
),
BcSimplePressure
(
getPressure0BoundaryUID
(),
getPressure0
(),
pdfField
,
pressure0_
),
BcSimplePressure
(
getPressure1BoundaryUID
(),
getPressure1
(),
pdfField
,
pressure1_
)
BcSimplePressure
(
getPressure1BoundaryUID
(),
getPressure1
(),
pdfField
,
pressure1_
),
boundaryHandlingTraversalMode_
);
);
return
handling
;
return
handling
;
...
...
This diff is collapsed.
Click to expand it.
src/lbm/boundary/factories/ExtendedBoundaryHandlingFactory.h
+
18
−
6
View file @
8c534baf
...
@@ -87,9 +87,16 @@ public:
...
@@ -87,9 +87,16 @@ public:
typedef
walberla
::
boundary
::
BoundaryHandling
<
FlagFieldT
,
Stencil
,
BcNoSlip
,
BcFreeSlip
,
BcPressure
,
BcUBB
,
BcOutlet
,
BcCurved
>
BoundaryHandling
;
typedef
walberla
::
boundary
::
BoundaryHandling
<
FlagFieldT
,
Stencil
,
BcNoSlip
,
BcFreeSlip
,
BcPressure
,
BcUBB
,
BcOutlet
,
BcCurved
>
BoundaryHandling
;
static
BlockDataID
addBoundaryHandlingToStorage
(
const
shared_ptr
<
StructuredBlockStorage
>
&
bs
,
const
std
::
string
&
identifier
,
static
BlockDataID
addBoundaryHandlingToStorage
(
const
shared_ptr
<
StructuredBlockStorage
>
&
bs
,
const
std
::
string
&
identifier
,
BlockDataID
flagFieldID
,
BlockDataID
pdfFieldID
,
const
Set
<
FlagUID
>
&
flagUIDSet
)
BlockDataID
flagFieldID
,
BlockDataID
pdfFieldID
,
const
Set
<
FlagUID
>
&
flagUIDSet
)
{
{
ExtendedBoundaryHandlingFactory
factory
(
flagFieldID
,
pdfFieldID
,
flagUIDSet
);
return
addBoundaryHandlingToStorage
(
bs
,
identifier
,
pdfFieldID
,
pdfFieldID
,
flagUIDSet
,
BoundaryHandling
::
Mode
::
OPTIMIZED_SPARSE_TRAVERSAL
);
}
static
BlockDataID
addBoundaryHandlingToStorage
(
const
shared_ptr
<
StructuredBlockStorage
>
&
bs
,
const
std
::
string
&
identifier
,
BlockDataID
flagFieldID
,
BlockDataID
pdfFieldID
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
)
{
ExtendedBoundaryHandlingFactory
factory
(
flagFieldID
,
pdfFieldID
,
flagUIDSet
,
boundaryHandlingTraversalMode
);
return
bs
->
addStructuredBlockData
<
BoundaryHandling
>
(
factory
,
identifier
);
return
bs
->
addStructuredBlockData
<
BoundaryHandling
>
(
factory
,
identifier
);
}
}
...
@@ -109,7 +116,8 @@ public:
...
@@ -109,7 +116,8 @@ public:
static
const
walberla
::
BoundaryUID
&
getCurvedBoundaryUID
()
{
static
BoundaryUID
uid
(
"Curved"
);
return
uid
;
}
static
const
walberla
::
BoundaryUID
&
getCurvedBoundaryUID
()
{
static
BoundaryUID
uid
(
"Curved"
);
return
uid
;
}
ExtendedBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
);
ExtendedBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
);
BoundaryHandling
*
operator
()(
walberla
::
IBlock
*
const
block
,
const
walberla
::
StructuredBlockStorage
*
const
storage
)
const
;
BoundaryHandling
*
operator
()(
walberla
::
IBlock
*
const
block
,
const
walberla
::
StructuredBlockStorage
*
const
storage
)
const
;
...
@@ -119,6 +127,8 @@ private:
...
@@ -119,6 +127,8 @@ private:
const
Set
<
FlagUID
>
flagUIDSet_
;
const
Set
<
FlagUID
>
flagUIDSet_
;
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode_
;
};
// class ExtendedBoundaryHandlingFactory
};
// class ExtendedBoundaryHandlingFactory
...
@@ -132,8 +142,9 @@ private:
...
@@ -132,8 +142,9 @@ private:
//**********************************************************************************************************************
//**********************************************************************************************************************
template
<
typename
LatticeModel
,
typename
FlagFieldT
>
template
<
typename
LatticeModel
,
typename
FlagFieldT
>
ExtendedBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
ExtendedBoundaryHandlingFactory
(
ExtendedBoundaryHandlingFactory
<
LatticeModel
,
FlagFieldT
>::
ExtendedBoundaryHandlingFactory
(
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
)
:
const
BlockDataID
&
flagField
,
const
BlockDataID
&
pdfField
,
const
Set
<
FlagUID
>
&
flagUIDSet
,
flagField_
(
flagField
),
pdfField_
(
pdfField
),
flagUIDSet_
(
flagUIDSet
)
const
typename
BoundaryHandling
::
Mode
boundaryHandlingTraversalMode
)
:
flagField_
(
flagField
),
pdfField_
(
pdfField
),
flagUIDSet_
(
flagUIDSet
),
boundaryHandlingTraversalMode_
(
boundaryHandlingTraversalMode
)
{
{
}
}
...
@@ -158,7 +169,8 @@ ExtendedBoundaryHandlingFactory<LatticeModel, FlagFieldT>::operator()( IBlock *
...
@@ -158,7 +169,8 @@ ExtendedBoundaryHandlingFactory<LatticeModel, FlagFieldT>::operator()( IBlock *
BcPressure
(
getPressureBoundaryUID
(),
getPressure
(),
pdfField
),
BcPressure
(
getPressureBoundaryUID
(),
getPressure
(),
pdfField
),
BcUBB
(
getUBBBoundaryUID
(),
getUBB
(),
pdfField
,
flagField
,
storage
->
getLevel
(
*
block
),
block
->
getAABB
()
),
BcUBB
(
getUBBBoundaryUID
(),
getUBB
(),
pdfField
,
flagField
,
storage
->
getLevel
(
*
block
),
block
->
getAABB
()
),
BcOutlet
(
getOutletBoundaryUID
(),
getOutlet
(),
pdfField
,
flagField
,
mask
),
BcOutlet
(
getOutletBoundaryUID
(),
getOutlet
(),
pdfField
,
flagField
,
mask
),
BcCurved
(
getCurvedBoundaryUID
(),
getCurved
(),
pdfField
,
flagField
,
mask
)
BcCurved
(
getCurvedBoundaryUID
(),
getCurved
(),
pdfField
,
flagField
,
mask
),
boundaryHandlingTraversalMode_
);
);
return
handling
;
return
handling
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment