Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Hurstel
CGoGN
Commits
d9d6bb63
Commit
d9d6bb63
authored
Apr 27, 2012
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
orbit as template -> linear solving
parent
ef19be46
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
169 additions
and
158 deletions
+169
-158
include/Algo/Geometry/laplacian.h
include/Algo/Geometry/laplacian.h
+13
-13
include/Algo/Geometry/laplacian.hpp
include/Algo/Geometry/laplacian.hpp
+13
-13
include/Algo/LinearSolving/basic.h
include/Algo/LinearSolving/basic.h
+50
-50
include/Algo/LinearSolving/matrixSetup.h
include/Algo/LinearSolving/matrixSetup.h
+52
-52
include/Algo/LinearSolving/variablesSetup.h
include/Algo/LinearSolving/variablesSetup.h
+20
-20
include/Topology/generic/cellmarker.h
include/Topology/generic/cellmarker.h
+15
-8
src/Topology/generic/attribmap.cpp
src/Topology/generic/attribmap.cpp
+6
-2
No files found.
include/Algo/Geometry/laplacian.h
View file @
d9d6bb63
...
...
@@ -40,43 +40,43 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE
computeLaplacianTopoVertex
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
;
template
<
typename
PFP
,
typename
ATTR_TYPE
>
ATTR_TYPE
computeLaplacianCotanVertex
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
;
template
<
typename
PFP
,
typename
ATTR_TYPE
>
void
computeLaplacianTopoVertices
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
AttributeHandler
<
ATTR_TYPE
>&
laplacian
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
laplacian
,
const
FunctorSelect
&
select
=
allDarts
)
;
template
<
typename
PFP
,
typename
ATTR_TYPE
>
void
computeLaplacianCotanVertices
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
AttributeHandler
<
ATTR_TYPE
>&
laplacian
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
laplacian
,
const
FunctorSelect
&
select
=
allDarts
)
;
template
<
typename
PFP
>
typename
PFP
::
REAL
computeCotanWeightEdge
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TVEC3
&
position
)
;
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
)
;
template
<
typename
PFP
>
void
computeCotanWeightEdges
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
TVEC3
&
position
,
typename
PFP
::
TREAL
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
FunctorSelect
&
select
=
allDarts
)
;
}
// namespace Geoemtry
...
...
include/Algo/Geometry/laplacian.hpp
View file @
d9d6bb63
...
...
@@ -39,7 +39,7 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE
computeLaplacianTopoVertex
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
ATTR_TYPE
l
(
0
)
;
ATTR_TYPE
value
=
attr
[
d
]
;
...
...
@@ -60,9 +60,9 @@ template <typename PFP, typename ATTR_TYPE>
ATTR_TYPE
computeLaplacianCotanVertex
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
ATTR_TYPE
l
(
0
)
;
typename
PFP
::
REAL
vArea
=
vertexArea
[
d
]
;
...
...
@@ -84,8 +84,8 @@ ATTR_TYPE computeLaplacianCotanVertex(
template
<
typename
PFP
,
typename
ATTR_TYPE
>
void
computeLaplacianTopoVertices
(
typename
PFP
::
MAP
&
map
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
AttributeHandler
<
ATTR_TYPE
>&
laplacian
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
laplacian
,
const
FunctorSelect
&
select
)
{
TraversorV
<
typename
PFP
::
MAP
>
t
(
map
,
select
)
;
...
...
@@ -96,10 +96,10 @@ void computeLaplacianTopoVertices(
template
<
typename
PFP
,
typename
ATTR_TYPE
>
void
computeLaplacianCotanVertices
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
AttributeHandler
<
ATTR_TYPE
>&
laplacian
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
laplacian
,
const
FunctorSelect
&
select
)
{
TraversorV
<
typename
PFP
::
MAP
>
t
(
map
,
select
)
;
...
...
@@ -111,7 +111,7 @@ template <typename PFP>
typename
PFP
::
REAL
computeCotanWeightEdge
(
typename
PFP
::
MAP
&
map
,
Dart
d
,
const
typename
PFP
::
TVEC3
&
position
)
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
)
{
if
(
map
.
isBoundaryEdge
(
d
))
{
...
...
@@ -138,8 +138,8 @@ typename PFP::REAL computeCotanWeightEdge(
template
<
typename
PFP
>
void
computeCotanWeightEdges
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
TVEC3
&
position
,
typename
PFP
::
TREAL
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
VEC3
,
VERTEX
>
&
position
,
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
FunctorSelect
&
select
)
{
TraversorE
<
typename
PFP
::
MAP
>
t
(
map
,
select
)
;
...
...
include/Algo/LinearSolving/basic.h
View file @
d9d6bb63
...
...
@@ -65,25 +65,25 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void
setupVariables
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
CellMarker
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
CellMarker
<
VERTEX
>
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
FunctorMeshToSolver_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
fmts
(
s
,
index
,
lm
,
attr
)
;
m
.
foreach_orbit
(
VERTEX
,
fmts
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
fmts
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
setupVariables
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
CellMarker
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
CellMarker
<
VERTEX
>
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
coord
)
{
FunctorMeshToSolver_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
fmts
(
s
,
index
,
lm
,
attr
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
fmts
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
fmts
)
;
}
/*******************************************************************************
...
...
@@ -104,50 +104,50 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void
addRowsRHS_Equality
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weight
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weight
)
{
FunctorEquality_PerVertexWeight_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
ec
(
s
,
index
,
attr
,
weight
)
;
m
.
foreach_orbit
(
VERTEX
,
ec
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
ec
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Equality
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
float
weight
)
{
FunctorEquality_UniformWeight_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
ec
(
s
,
index
,
attr
,
weight
)
;
m
.
foreach_orbit
(
VERTEX
,
ec
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
ec
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Equality
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weight
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weight
,
unsigned
int
coord
)
{
FunctorEquality_PerVertexWeight_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
ec
(
s
,
index
,
attr
,
weight
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
ec
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
ec
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Equality
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
float
weight
,
unsigned
int
coord
)
{
FunctorEquality_UniformWeight_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
ec
(
s
,
index
,
attr
,
weight
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
ec
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
ec
)
;
}
/*******************************************************************************
...
...
@@ -158,33 +158,33 @@ template <typename PFP, class SOLVER_TRAITS>
void
addRows_Laplacian_Topo
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
)
{
FunctorLaplacianTopo
<
PFP
,
SOLVER_TRAITS
>
flt
(
m
,
s
,
index
)
;
m
.
foreach_orbit
(
VERTEX
,
flt
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flt
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Laplacian_Topo
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
FunctorLaplacianTopoRHS_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
flt
(
m
,
s
,
index
,
attr
)
;
m
.
foreach_orbit
(
VERTEX
,
flt
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flt
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Laplacian_Topo
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
coord
)
{
FunctorLaplacianTopoRHS_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
flt
(
m
,
s
,
index
,
attr
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
flt
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flt
)
;
}
/*******************************************************************************
...
...
@@ -195,39 +195,39 @@ template <typename PFP, class SOLVER_TRAITS>
void
addRows_Laplacian_Cotan
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
)
{
FunctorLaplacianCotan
<
PFP
,
SOLVER_TRAITS
>
flc
(
m
,
s
,
index
,
edgeWeight
,
vertexArea
)
;
m
.
foreach_orbit
(
VERTEX
,
flc
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flc
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Laplacian_Cotan
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
FunctorLaplacianCotanRHS_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
flc
(
m
,
s
,
index
,
edgeWeight
,
vertexArea
,
attr
)
;
m
.
foreach_orbit
(
VERTEX
,
flc
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flc
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
addRowsRHS_Laplacian_Cotan
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
const
typename
PFP
::
TREAL
&
edgeWeight
,
const
typename
PFP
::
TREAL
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
coord
)
{
FunctorLaplacianCotanRHS_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
flc
(
m
,
s
,
index
,
edgeWeight
,
vertexArea
,
attr
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
flc
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
flc
)
;
}
/*******************************************************************************
...
...
@@ -268,23 +268,23 @@ template <typename PFP, typename ATTR_TYPE, class SOLVER_TRAITS>
void
getResult
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
AttributeHandler
<
ATTR_TYPE
>&
attr
)
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
{
FunctorSolverToMesh_Scalar
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
fstm
(
s
,
index
,
attr
)
;
m
.
foreach_orbit
(
VERTEX
,
fstm
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
fstm
)
;
}
template
<
typename
PFP
,
typename
ATTR_TYPE
,
class
SOLVER_TRAITS
>
void
getResult
(
typename
PFP
::
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>
index
,
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
coord
)
{
FunctorSolverToMesh_Vector
<
PFP
,
ATTR_TYPE
,
SOLVER_TRAITS
>
fstm
(
s
,
index
,
attr
,
coord
)
;
m
.
foreach_orbit
(
VERTEX
,
fstm
)
;
m
.
template
foreach_orbit
<
VERTEX
>(
fstm
)
;
}
}
// namespace LinearSolving
...
...
include/Algo/LinearSolving/matrixSetup.h
View file @
d9d6bb63
...
...
@@ -40,16 +40,16 @@ class FunctorEquality_PerVertexWeight_Scalar : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weightTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weightTable
;
public:
FunctorEquality_PerVertexWeight_Scalar
(
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weight
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weight
)
:
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
),
weightTable
(
weight
)
{}
...
...
@@ -69,15 +69,15 @@ class FunctorEquality_UniformWeight_Scalar : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
float
weight
;
public:
FunctorEquality_UniformWeight_Scalar
(
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
float
w
)
:
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
),
weight
(
w
)
{}
...
...
@@ -102,17 +102,17 @@ class FunctorEquality_PerVertexWeight_Vector : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weightTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weightTable
;
unsigned
int
coord
;
public:
FunctorEquality_PerVertexWeight_Vector
(
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
>&
weight
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>&
weight
,
unsigned
int
c
)
:
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
),
weightTable
(
weight
),
coord
(
c
)
{}
...
...
@@ -133,16 +133,16 @@ class FunctorEquality_UniformWeight_Vector : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
float
weight
;
unsigned
int
coord
;
public:
FunctorEquality_UniformWeight_Vector
(
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
float
w
,
unsigned
int
c
)
:
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
),
weight
(
w
),
coord
(
c
)
...
...
@@ -168,7 +168,7 @@ class FunctorLaplacianTopo : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
public:
typedef
typename
PFP
::
MAP
MAP
;
...
...
@@ -177,7 +177,7 @@ public:
FunctorLaplacianTopo
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
)
{}
...
...
@@ -209,8 +209,8 @@ class FunctorLaplacianTopoRHS_Scalar : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
public:
typedef
typename
PFP
::
MAP
MAP
;
...
...
@@ -219,8 +219,8 @@ public:
FunctorLaplacianTopoRHS_Scalar
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
)
{}
...
...
@@ -252,8 +252,8 @@ class FunctorLaplacianTopoRHS_Vector : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
unsigned
int
coord
;
public:
...
...
@@ -263,8 +263,8 @@ public:
FunctorLaplacianTopoRHS_Vector
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
c
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
),
attrTable
(
attr
),
coord
(
c
)
{}
...
...
@@ -297,9 +297,9 @@ class FunctorLaplacianCotan : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
typename
PFP
::
TREAL
&
edgeWeight
;
const
typename
PFP
::
TREAL
&
vertexArea
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
;
public:
typedef
typename
PFP
::
MAP
MAP
;
...
...
@@ -308,9 +308,9 @@ public:
FunctorLaplacianCotan
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
typename
PFP
::
TREAL
&
eWeight
,
const
typename
PFP
::
TREAL
&
vArea
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
eWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vArea
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
),
edgeWeight
(
eWeight
),
vertexArea
(
vArea
)
{}
...
...
@@ -346,10 +346,10 @@ class FunctorLaplacianCotanRHS_Scalar : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
typename
PFP
::
TREAL
&
edgeWeight
;
const
typename
PFP
::
TREAL
&
vertexArea
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
public:
typedef
typename
PFP
::
MAP
MAP
;
...
...
@@ -358,10 +358,10 @@ public:
FunctorLaplacianCotanRHS_Scalar
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
typename
PFP
::
TREAL
&
eWeight
,
const
typename
PFP
::
TREAL
&
vArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
eWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
),
edgeWeight
(
eWeight
),
vertexArea
(
vArea
),
attrTable
(
attr
)
{}
...
...
@@ -394,10 +394,10 @@ class FunctorLaplacianCotanRHS_Vector : public FunctorMap<typename PFP::MAP>
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
const
typename
PFP
::
TREAL
&
edgeWeight
;
const
typename
PFP
::
TREAL
&
vertexArea
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
edgeWeight
;
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vertexArea
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
unsigned
int
coord
;
public:
...
...
@@ -407,10 +407,10 @@ public:
FunctorLaplacianCotanRHS_Vector
(
MAP
&
m
,
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>&
index
,
const
typename
PFP
::
TREAL
&
eWeight
,
const
typename
PFP
::
TREAL
&
vArea
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
,
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
EDGE
>
&
eWeight
,
const
AttributeHandler
<
typename
PFP
::
REAL
,
VERTEX
>
&
vArea
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
,
unsigned
int
c
)
:
FunctorMap
<
MAP
>
(
m
),
solver
(
s
),
indexTable
(
index
),
edgeWeight
(
eWeight
),
vertexArea
(
vArea
),
attrTable
(
attr
),
coord
(
c
)
{}
...
...
include/Algo/LinearSolving/variablesSetup.h
View file @
d9d6bb63
...
...
@@ -36,17 +36,17 @@ class FunctorMeshToSolver_Scalar : public FunctorType
{
protected:
LinearSolver
<
SOLVER_TRAITS
>*
solver
;
const
AttributeHandler
<
unsigned
int
>&
indexTable
;
CellMarker
&
lockingMarker
;
const
AttributeHandler
<
ATTR_TYPE
>&
attrTable
;
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
indexTable
;
CellMarker
<
VERTEX
>
&
lockingMarker
;
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attrTable
;
bool
lockedVertices
;
public:
FunctorMeshToSolver_Scalar
(
LinearSolver
<
SOLVER_TRAITS
>*
s
,
const
AttributeHandler
<
unsigned
int
>
index
,
CellMarker
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
>&
attr
const
AttributeHandler
<
unsigned
int
,
VERTEX
>&
index
,
CellMarker
<
VERTEX
>
&
lm
,
const
AttributeHandler
<
ATTR_TYPE
,
VERTEX
>&
attr
)
:
solver
(
s
),
indexTable
(
index
),
lockingMarker
(
lm
),
attrTable
(
attr
),
lockedVertices
(
false
)
{}