24 const gismo::gsVector<T, 2> &
uv, gismo::gsVector<T, 2> &
xieta,
25 gismo::gsMatrix<T, 2, 2> &jac) {
54 typedef typename gismo::gsExprAssembler<T>::geometryMap
geometryMap;
55 typedef typename gismo::gsExprAssembler<T>::space
space;
56 typedef typename gismo::gsExprAssembler<T>::solution
solution;
65 gismo::gsMatrix<T>
bbox;
67 m_mp.patch(0).translate(-
bbox.col(0));
114 auto FFF = gismo::expr::jac(G).tr() * gismo::expr::jac(G);
116 gismo::gsVector<>
pt(2);
120 pow(
FFF.det().val(), 2) / pow(
m_area, 2);
175 gismo::gsAsVector<T> &
result)
const override {
177 const std::size_t
n = u.rows();
180 gismo::gsMatrix<T>
uu = u;
181 gismo::gsAsVector<T>
tmp(
uu.data(),
n);
182 gismo::gsAsConstVector<T>
ctmp(
uu.data(),
n);
187 for (std::size_t
i = 0;
i !=
n;
i++) {
206 m_options.addReal(
"qi_lambda1",
"Sets the lambda 1 value", 1.0);
207 m_options.addReal(
"qi_lambda2",
"Sets the lambda 2 value", 1.0);
224 const gismo::gsMultiPatch<T>
m_mp;
226 const gismo::gsMultiBasis<T>
m_mb;
244 gismo::gsMultiPatch<T>
result;
248 gismo::gsMatrix<T>
uv =
249 gismo::gsPointGrid(
mp.parameterRange(0),
mp.patch(
ipatch).basis().size() * 4);
254 gismo::gsMatrix<T, 2, 2>
jacUV;
267 gismo::gsTensorBSplineBasis<2, T>
bbasis =
268 static_cast<gismo::gsTensorBSplineBasis<2, T> &
>(
mp.patch(
ipatch).basis());
Objective function for surface reparameterization.
Definition GismoSurfaceReparameterization.hpp:51
void defaultOptions()
Sets the default options.
Definition GismoSurfaceReparameterization.hpp:204
gismo::gsOptionList & options()
Returns a reference to the option list.
Definition GismoSurfaceReparameterization.hpp:201
gismo::gsOptionList m_options
Definition GismoSurfaceReparameterization.hpp:231
T m_eps
Definition GismoSurfaceReparameterization.hpp:233
const gismo::gsDofMapper m_mapper
Definition GismoSurfaceReparameterization.hpp:225
gismo::gsExprAssembler< T >::space space
Definition GismoSurfaceReparameterization.hpp:55
T m_lambda2
Definition GismoSurfaceReparameterization.hpp:233
void setEps(T tol)
Sets the tolerance.
Definition GismoSurfaceReparameterization.hpp:198
gsObjFuncSurface(const gismo::gsMultiPatch< T > &patches, const gismo::gsMobiusDomain< 2, T > &mobiusDomain)
Constructor.
Definition GismoSurfaceReparameterization.hpp:60
void applyOptions(const gismo::gsOptionList &options)
Applies an option list.
Definition GismoSurfaceReparameterization.hpp:216
T m_area
Definition GismoSurfaceReparameterization.hpp:234
T evalObj(const gismo::gsAsConstVector< T > &coefsM) const override
Evaluates the objective function.
Definition GismoSurfaceReparameterization.hpp:100
gismo::gsExprAssembler< T > m_assembler
Definition GismoSurfaceReparameterization.hpp:229
void gradObj_into(const gismo::gsAsConstVector< T > &u, gismo::gsAsVector< T > &result) const override
Evaluates the gradient of the objective function.
Definition GismoSurfaceReparameterization.hpp:174
gismo::gsExprAssembler< T >::solution solution
Definition GismoSurfaceReparameterization.hpp:56
gismo::gsMobiusDomain< 2, T > m_MobiusDomain
Definition GismoSurfaceReparameterization.hpp:237
T m_lambda1
Definition GismoSurfaceReparameterization.hpp:233
const gismo::gsMultiPatch< T > m_mp
Definition GismoSurfaceReparameterization.hpp:224
gismo::gsComposedGeometry< T > m_cgeom
Definition GismoSurfaceReparameterization.hpp:236
gismo::gsExprAssembler< T >::geometryMap geometryMap
Definition GismoSurfaceReparameterization.hpp:54
gismo::gsExprEvaluator< T > m_evaluator
Definition GismoSurfaceReparameterization.hpp:228
void addOptions(const gismo::gsOptionList &options)
Adds an option to the option list.
Definition GismoSurfaceReparameterization.hpp:211
const gismo::gsMultiBasis< T > m_mb
Definition GismoSurfaceReparameterization.hpp:226
Isogeometric analysis network main header file.
Definition boundary.hpp:22
gismo::gsMultiPatch< T > convertIntoBSpline(const gismo::gsMultiPatch< T > &mp, const gismo::gsMatrix< T > &coefsMobiusIn)
Converts a matrix of coefficients into a multi-patch B-spline object.
Definition GismoSurfaceReparameterization.hpp:242
constexpr bool is_SplineType_v
Alias to the value of is_SplineType.
Definition bspline.hpp:3243
void mobiusTransform(const gismo::gsAsConstVector< T > &c, const gismo::gsVector< T, 2 > &uv, gismo::gsVector< T, 2 > &xieta, gismo::gsMatrix< T, 2, 2 > &jac)
Computes the Mobius transformation.
Definition GismoSurfaceReparameterization.hpp:23