PolyFEM
Loading...
Searching...
No Matches
SmoothingForms.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include "
AdjointForm.hpp
"
4
5
namespace
polyfem
6
{
7
class
State;
8
}
9
10
namespace
polyfem::solver
11
{
12
class
BoundarySmoothingForm
:
public
AdjointForm
13
{
14
public
:
15
BoundarySmoothingForm
(
16
const
VariableToSimulationGroup
&variable_to_simulations,
17
const
State
&state,
18
const
bool
scale_invariant,
19
const
int
power,
20
const
std::vector<int> &surface_selections,
21
const
std::vector<int> &active_dims);
22
23
double
value_unweighted
(
const
Eigen::VectorXd &
x
)
const override
;
24
void
compute_partial_gradient
(
const
Eigen::VectorXd &
x
, Eigen::VectorXd &gradv)
const override
;
25
26
private
:
27
const
State
&
state_
;
28
const
bool
scale_invariant_
;
29
const
int
power_
;
// only if scale_invariant_ is true
30
Eigen::SparseMatrix<bool, Eigen::RowMajor>
adj
;
31
Eigen::SparseMatrix<double, Eigen::RowMajor>
L
;
32
std::set<int>
surface_ids_
;
33
std::vector<int>
active_dims_
;
34
};
35
}
// namespace polyfem::solver
AdjointForm.hpp
x
int x
Definition
SplineBasis3d.cpp:55
polyfem::State
main class that contains the polyfem solver and all its state
Definition
State.hpp:79
polyfem::solver::AdjointForm
Definition
AdjointForm.hpp:9
polyfem::solver::BoundarySmoothingForm
Definition
SmoothingForms.hpp:13
polyfem::solver::BoundarySmoothingForm::state_
const State & state_
Definition
SmoothingForms.hpp:27
polyfem::solver::BoundarySmoothingForm::active_dims_
std::vector< int > active_dims_
Definition
SmoothingForms.hpp:33
polyfem::solver::BoundarySmoothingForm::scale_invariant_
const bool scale_invariant_
Definition
SmoothingForms.hpp:28
polyfem::solver::BoundarySmoothingForm::adj
Eigen::SparseMatrix< bool, Eigen::RowMajor > adj
Definition
SmoothingForms.hpp:30
polyfem::solver::BoundarySmoothingForm::power_
const int power_
Definition
SmoothingForms.hpp:29
polyfem::solver::BoundarySmoothingForm::value_unweighted
double value_unweighted(const Eigen::VectorXd &x) const override
Compute the value of the form.
Definition
SmoothingForms.cpp:79
polyfem::solver::BoundarySmoothingForm::compute_partial_gradient
void compute_partial_gradient(const Eigen::VectorXd &x, Eigen::VectorXd &gradv) const override
Definition
SmoothingForms.cpp:120
polyfem::solver::BoundarySmoothingForm::surface_ids_
std::set< int > surface_ids_
Definition
SmoothingForms.hpp:32
polyfem::solver::BoundarySmoothingForm::L
Eigen::SparseMatrix< double, Eigen::RowMajor > L
Definition
SmoothingForms.hpp:31
polyfem::solver::VariableToSimulationGroup
A collection of VariableToSimulation.
Definition
VariableToSimulation.hpp:51
polyfem::solver
Definition
OptState.hpp:16
polyfem
Definition
AMIPSEnergy.cpp:6
src
polyfem
solver
forms
adjoint_forms
SmoothingForms.hpp
Generated by
1.9.8