PolyFEM
Loading...
Searching...
No Matches
ParametrizedProductForm.hpp
Go to the documentation of this file.
1
#pragma once
2
3
#include <
polyfem/optimization/forms/ParametrizationForm.hpp
>
4
5
namespace
polyfem::solver
6
{
7
// computes the product of a parametrized vector
8
class
ParametrizedProductForm
:
public
ParametrizationForm
9
{
10
public
:
11
ParametrizedProductForm
(
CompositeParametrization
&¶metrizations) :
ParametrizationForm
(std::move(parametrizations))
12
{
13
}
14
15
protected
:
16
inline
double
value_unweighted_with_param
(
const
Eigen::VectorXd &
x
)
const override
17
{
18
return
x
.prod();
19
}
20
21
inline
void
compute_partial_gradient_with_param
(
const
Eigen::VectorXd &
x
, Eigen::VectorXd &gradv)
const override
22
{
23
gradv.setOnes(
x
.size());
24
for
(
int
i = 0; i <
x
.size(); i++)
25
{
26
for
(
int
j = 0; j <
x
.size(); j++)
27
{
28
if
(j != i)
29
gradv(i) *=
x
(j);
30
}
31
}
32
gradv *=
weight
();
33
}
34
};
35
}
// namespace polyfem::solver
ParametrizationForm.hpp
x
int x
Definition
SplineBasis3d.cpp:55
polyfem::solver::CompositeParametrization
Definition
Parametrization.hpp:55
polyfem::solver::Form::weight
virtual double weight() const
Get the form's multiplicative constant weight.
Definition
Form.hpp:128
polyfem::solver::ParametrizationForm
Definition
ParametrizationForm.hpp:20
polyfem::solver::ParametrizedProductForm
Definition
ParametrizedProductForm.hpp:9
polyfem::solver::ParametrizedProductForm::compute_partial_gradient_with_param
void compute_partial_gradient_with_param(const Eigen::VectorXd &x, Eigen::VectorXd &gradv) const override
Definition
ParametrizedProductForm.hpp:21
polyfem::solver::ParametrizedProductForm::value_unweighted_with_param
double value_unweighted_with_param(const Eigen::VectorXd &x) const override
Definition
ParametrizedProductForm.hpp:16
polyfem::solver::ParametrizedProductForm::ParametrizedProductForm
ParametrizedProductForm(CompositeParametrization &¶metrizations)
Definition
ParametrizedProductForm.hpp:11
polyfem::solver
Definition
SolverCSVWriter.hpp:11
src
polyfem
optimization
forms
ParametrizedProductForm.hpp
Generated by
1.9.8