Arne Morten Kvarving
309f57fb64
ASMuxDmx::swapProjectionBasis: move to ASMLRSpline
...
now there are no differences between the classes so let's unify.
also a step in making functionality available for non-mixed ASMs,
although there is more work before that is supported.
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
aff5742171
changed: move thread group variables to ASMLRSpline
...
all groups now makes sense for 2D/3D, and will make
sense for non-mixed as well eventually.
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
10c1834056
remove ASMu3D::myGeoBasis - now unused
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
09fbaf5ec4
ASMu3Dmx: use projection spline for geometry with DIV_COMPATIBLE
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
f79604e61a
ASMu3Dmx: use original spline for geometry with SUBGRID
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
e3caca11eb
ASMu3D::evalPoint: use geometry basis
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
494a8df6b8
ASMu3D::faceL2projection: add support for a separate geometry basis
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
0576f121b0
ASMu3Dmx::assembleL2matrices: support for a separate geometry basis
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
9f399aa78d
ASMu3Dmx::evalSolution: add support for a separate geometry
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
c97035a749
ASMu3Dmx::integrate: add support for a separate geometry basis
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
be59cecf9b
ASMu3D::getElementCoordinates: support a separate geometry basis
2023-09-08 12:58:14 +02:00
Arne Morten Kvarving
fd9e17bacb
changed: drop ASMu2D::getParametricArea
...
just use LR::Element::area directly
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
47af45a21e
ASMu2Dmx: use projection spline for geometry with DIV_COMPATIBLE
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
07bd00da2d
ASMu2Dmx: use original spline for geometry with SUBGRID
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
772704b401
ASMu2D::evalPoint: use geometry basis
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
860a8a31e9
ASMu2D::edgeL2projection: add support for a separate geometry basis
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
fec1cac3eb
ASMu2Dmx::evalSolution: add support for a separate geometry
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
0d73f3fa83
ASMu2Dmx::assembleL2matrices: support for a separate geometry basis
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
a0e1433dd3
ASMu2Dmx::integrate: add support for a separate geometry basis
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
0c625b614e
ASMu2D::getElementCoordinates: support a separate geometry basis
2023-09-08 08:57:07 +02:00
Arne Morten Kvarving
1de184cbfa
ASMs2D::evalPoint: use geometry basis
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
91959fdf27
ASMs3D::evalPoint: use geometry basis
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
7ebdd7acab
SplineUtils::point: pass spline as const
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
0f93b98fce
ASMsxDmx::swapProjectionBasis: move to ASMstruct
...
now there are no differences between the classes so let's unify.
also a step in making functionality available for non-mixed ASMs,
although there is more work before that is supported.
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
ee77610cb2
ASMs3Dmx: use projection grid for geometry with DIV_COMPATIBLE
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
312c50c309
ASMs3Dmx: use original spline for geometry with SUBGRID
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
ac11ac2d32
ASMs3D::assembleL2matrices: support for a separate geometry basis
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
6ddca79ea4
ASMs3Dmx: tabs to spaces
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
61637671d5
ASMs3Dmx::integrate: add support for a separate geometry basis
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
5eb981147e
ASMs3D::getElementCoordinates: support a separate geometry basis
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
e2768902be
fixed: remove ASMs3Dmx::getElementCoordinates
...
accidentially left out of 0a33cedfc3
2023-09-08 08:25:30 +02:00
Arne Morten Kvarving
dc72826188
ASMs2Dmx: use projection grid for geometry with DIV_COMPATIBLE
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
dcd7067064
ASMs2Dmx: use original spline for geometry with SUBGRID
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
6ac805a569
ASMs2D::assembleL2matrices: support for a separate geometry basis
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
574bffdfb1
ASMbase::getElementCoordinates: add flag to force integration basis
...
required as this is used to obtain coordinates for integration elements
in CFL calculations and in ASMu2D evalPoint
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
1e01b45c9b
ASMs2Dmx: replace tabs with spaces
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
f28b871df0
ASMs2Dmx::integrate: add support for a separate geometry basis
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
5a9f3be584
ASMs2D::getElementCoordinates: support a separate geometry basis
2023-09-07 08:57:30 +02:00
Arne Morten Kvarving
34841db38c
fixed: do not use bezier extraction with subgrid in 3D unstruct
...
we cannot uniformly use bezier extraction from gauss points
with subgrid, since we are not evaluating in gauss points
distributed across the element for all bases. this because
our integration elements have an additional subdivision,
which means the pressure basis is evaluated in non-uniform points
(ie we evaluate in 8 distinct sets of gauss-points over its elements).
2023-09-07 08:21:51 +02:00
Arne Morten Kvarving
dbb7b41ade
ASMuxD::assembleL2matrices
...
fix condition for using model MNPC
2023-09-07 08:21:51 +02:00
Arne Morten Kvarving
9a4c48eac4
fixed: reading nodes from HDF5 file
...
we need to instance the ProcessAdm and not pass a temporary.
holding a reference to a temporary is not enough to keep
it alive, which means it is killed and consequently the
reader holds an invalid reference.
2023-09-07 07:41:54 +02:00
Arne Morten Kvarving
95afb36eb2
added: FiniteElement::Jacobian for use on boundaries
2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
89c065edc4
MxFiniteElement::Hessian
...
support for a separate geometry basis. checks length
of the passed vector, if greater than number of bases,
use the last entry for the geometry mapping
2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
28d547c3e4
MxFiniteElement::Jacobian
...
support for a separate geometry basis. checks length
of the passed vector, if greater than number of bases,
use the last entry for the geometry mapping
2023-09-06 09:21:56 +02:00
Arne Morten Kvarving
004d1927ae
ASMuxD(mx): use lrspline instead of geomB in various spots
...
these ops intends to use the integration basis
2023-09-05 12:38:14 +02:00
Arne Morten Kvarving
8762ec1943
ASMu3D::BasisFunctionCache: make use of bezier extraction optional
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
89f4191139
ASMu3Dmx: remove unused bezierExtractmx
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
37aba0ca58
ASMuxD(mx): add an if in ASMuxD basis function cache
...
this way we avoid duplication of the class in ASMuxDmx
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
3240697ec0
fixed: wrong array size
...
this is the main quadrature loop, not the reduced quadrature.
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
c839e0ac79
ASMu3D::evaluateBasis(2): pass params and vector instead of finite element
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
dbc2202b5a
ASMu3D::evaluateBasis: pass vector instead of finite element and basis index
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
82ccdc49e3
ASMu3D::constrainFace
...
use midpoint()
2023-09-05 11:51:08 +02:00
Arne Morten Kvarving
3ad0b872c8
changed: rename ASMmxBase::geoBasis to ASMmxBase::itgBasis
...
more precise as this represents the basis holding the integration elements
2023-09-05 10:12:26 +02:00
Arne Morten Kvarving
6aeefcd0f0
changed: use PETSC_NULLPTR
...
for PETSc < 3.19 we define this to PETSC_NULL.
use of PETSC_NULL causes a deprecation warning in 3.19
2023-09-04 20:02:53 +02:00
Arne Morten Kvarving
9014cc6335
changed: use INSTANTIATE_TEST_SUITE_P
...
INSTANTIATE_TEST_CASE_P causes deprecation warnings with
newer gtest versions
2023-09-04 20:02:53 +02:00
Arne Morten Kvarving
ab100c290d
changed: use getBasis in ASMxxD::assembleL2matrices
...
make it clear that we want the integration and projection bases.
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
ad7ff2b19e
ASMuxDmx: use getBasis(ASM::REFINEMENT_BASIS) where appropriate
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
d9056a92b2
ASMuxD: use getBasis(ASM::PROJECTION_BASIS) where appropriate
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
00486b30e8
use getBasis(ASM::PROJECTION) in ASMuxD::refine
...
and restructure a little to make code more readable.
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
c3bb2447cd
use getBasis(ASM::INTEGRATION_BASIS) in ASMsxDmx::generateFEMTopology()
...
this makes it a bit clearer what is going on.
introduce a lambda to avoid duplicated code and some generic cleanup
2023-09-01 17:20:42 +02:00
Arne Morten Kvarving
f91a62e372
add tests for unstructured ASM write
...
also serves as tests for the getBasis implementation
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
9cf613cbca
changed: move ASMuSquare and ASMuCube to separate header
...
for reuse like in the structured ASMs tests
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
76a6139bfc
changed: no reason to override write in ASMuxDmx
...
we can just use the ASMuxD implementation
2023-09-01 15:41:44 +02:00
Arne Morten Kvarving
d57ebd0d0c
add tests for structured ASM write
...
also serves as tests for the getBasis implementation
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
dc7a2e444a
changed: unify ASM(Cube|Square) and ASMmx(Cube|Square)
...
in particular do not call generateFEMTopology in the latter's
constructor.
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
53f5d1f830
changed: no reason to override write in ASMsxDmx
...
we can just use the ASMsxD implementation
2023-09-01 14:29:10 +02:00
Arne Morten Kvarving
005f8f24b1
ASMuxDmx: restructure basis establishment
...
make it (almost) similar to code in structured ASMs
2023-09-01 14:09:00 +02:00
Arne Morten Kvarving
809a650bc4
fixed: avoid cloning in ASMsxDmx
...
instead point to the shared ptrs. make sure to null ptrs
before ASMstruct wants to delete them.
2023-09-01 14:09:00 +02:00
Arne Morten Kvarving
fdd7b189b1
use a lambda in ASMu3D::getBoundary1Nodes
...
switch is preferable to ifs
2023-09-01 13:46:14 +02:00
Arne Morten Kvarving
3d6d950474
changed: remove ASMxxD::get(Surface|Volume)
...
use getBasis instead
2023-09-01 08:51:04 +02:00
Arne Morten Kvarving
957af79433
added: extend getBasis method
...
allow obtaining additional bases, not just the FE bases
in particular geometry basis and projection basis.
add an enumeration to make things readable
2023-09-01 08:51:04 +02:00
Arne Morten Kvarving
4abf4c64a7
changed: override separateProjectionBasis in ASMxxD(mx)
...
in preparation for having a separate geometry basis. in that case
we cannot use the geomB pointer to check for equivalence.
also fixes two field mixed formulations with the higher
order basis being the second basis. in that case we are
not projecting on basis 1, but rather on basis 2.
2023-08-29 14:36:03 +02:00
Arne Morten Kvarving
0c2e160d90
rename some variables to make code more readable
2023-08-29 14:34:33 +02:00
Arne Morten Kvarving
9d133d8be1
move refinement basis into ASMLRSpline
2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
b3b3e1fa7a
ASMu2D: make createLRNurbs return a shared_ptr directly
...
no reason to use bare pointers here, they are always put into
a shared_ptr
2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
59ad91c245
rename altProjThreadGroups to proj2ThreadGroups
2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
505d9d9a6c
move projection bases into ASMLRSpline
2023-08-29 14:05:20 +02:00
Arne Morten Kvarving
dce989f1c6
changed: remove proj members in ASMs2D and ASMs3D
...
as these are stored as projB in ASMstruct.
less confusion as there are less member pointers.
2023-08-29 10:52:23 +02:00
Arne Morten Kvarving
086592c2f9
changed: move secondary projection basis into ASMstruct
2023-08-29 10:52:23 +02:00
Arne Morten Kvarving
1d32025671
ASMuxDmx: simplify remapErrors by using elm->midpoint()
2023-08-29 10:12:45 +02:00
Arne Morten Kvarving
bd5609035b
changed: rename ASMLRSpline::geo to geomB
...
to be consistent with ASMstruct. we store it
as a shared_ptr. too many pointers to keep manually
track of. it can be (soon) be a separate object,
one of the FE bases, the projection basis, ...
2023-08-29 09:11:09 +02:00
Knut Morten Okstad
3a4fc9e081
Changed: Second (mostly dummy) argument in read method is removed.
...
Instead, introducing a separate readBasis method.
2023-08-25 16:43:46 +02:00
Arne Morten Kvarving
0a33cedfc3
changed: introduce a method to obtain first node on integration basis
...
use this in ASMsxD::getElementCoordinates. we can then
reuse this method in ASMsxDmx
2023-08-25 12:26:26 +02:00
Arne Morten Kvarving
c0b5911549
changed: introduce a method to obtain last node on integration basis
...
use this in ASMsxD::getParametric[Area|Length|Volume]. we can then
reuse these method in ASMsxDmx
2023-08-25 12:26:26 +02:00
Arne Morten Kvarving
deb2bd53ea
fixed: make sure to always set geoBasis
...
if not we risk getting the wrong setting if we instance
a SIM with e.g. subgrid followed by instancing a SIM with Taylor-Hood.
2023-08-25 11:16:05 +02:00
Knut Morten Okstad
bc066b9336
Changed: Unnecessary copying of bfs.N removed.
...
Fixed: Debug print in ASMu2D::integrate().
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f2f876c77c
added: BasisFunctionCache in ASMu3Dmx
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
730fdca306
added: BasisFunctionCache in ASMu3D
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
2f676bf6b3
added: BasisFunctionCache in ASMu2Dmx
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f2924c1cbd
added: BasisFunctionCache in ASMu2D
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
bffcfa640f
added: BasisFunctionCache in ASMs3DmxLag
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
e595bd3556
added: BasisFunctionCache in ASMs3Dmx
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
003d567cd3
added: BasisFunctionCache in ASMs3DLag
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
a247271241
added: BasisFunctionCache in ASMs3D
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
a6debc90af
added: BasisFunctionCache in ASMs2DmxLag
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
f268e533a8
added: BasisFunctionCache in ASMs2Dmx
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
eff2b08e03
added: BasisFunctionCache in ASMs2DLag
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
6ce589a6b5
added: BasisFunctionCache in ASMs2D
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
c168894ebf
added: input file option for defining cache policy
2023-08-15 11:47:15 +02:00
Arne Morten Kvarving
44bbec509a
added: base class for basis function cache
2023-08-15 11:47:15 +02:00