-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
Problem
Inside the gsThinShellAssembler we use the gsExprAssembler. The material evaluations are moved into the gsExprAssembler by lines like:
gsMaterialMatrixIntegrate<T,MaterialOutput::MatrixA> m_mmA(m_materialMatrices,&m_patches,&defpatches);
gsMaterialMatrixIntegrate<T,MaterialOutput::MatrixB> m_mmB(m_materialMatrices,&m_patches,&defpatches);
gsMaterialMatrixIntegrate<T,MaterialOutput::MatrixC> m_mmC(m_materialMatrices,&m_patches,&defpatches);
gsMaterialMatrixIntegrate<T,MaterialOutput::MatrixD> m_mmD(m_materialMatrices,&m_patches,&defpatches);
auto mmA = m_assembler.getCoeff(m_mmA);
auto mmB = m_assembler.getCoeff(m_mmB);
auto mmC = m_assembler.getCoeff(m_mmC);
auto mmD = m_assembler.getCoeff(m_mmD);However, when inside an assembly call we use m_mmA and m_mmB, they both call pre-computation of the same geometric quantities (see gsMaterialMatrixBaseDim.hpp.
Solution
It would be more optimal to perform the geometric computations only once, preferably delegated by the gsExprAssembler and the parse functions in the expressions.
We can do this by making expression objects for gsMaterialMatrixIntegrate and gsMaterialMatrixEval.
(example follows...)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request