18 #if !defined(KRATOS_STRUCTURE_ADJOINT_SENSITIVITY_STRATEGY_H_INCLUDED)
19 #define KRATOS_STRUCTURE_ADJOINT_SENSITIVITY_STRATEGY_H_INCLUDED
47 template <
class TSparseSpace,
71 typename TLinearSolver::Pointer pNewLinearSolver,
74 mr_structure_model_part(rStructureModelPart),
100 const ProcessInfo& ConstProcessInfo= mr_structure_model_part.GetProcessInfo();
104 element_i.Calculate(DCDX, Out, ConstProcessInfo);
108 KRATOS_INFO(
"[TopOpt]") <<
" Objective Function sensitivities computed [ spent time = " <<
timer.ElapsedSeconds() <<
" ] " << std::endl;
122 const ProcessInfo& ConstProcessInfo= mr_structure_model_part.GetProcessInfo();
126 element_i.Calculate(DVDX, Out, ConstProcessInfo);
129 KRATOS_INFO(
"[TopOpt]") <<
" Volume fraction sensitivities computed [ spent time = " <<
timer.ElapsedSeconds() <<
" ] " << std::endl;
143 typename BaseType::Pointer mpStrategy;
Current class provides an implementation for the base builder and solving operations.
Definition: builder_and_solver.h:64
Definition: builtin_timer.h:26
Base class for all Elements.
Definition: element.h:60
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
This class provides the implementation of the basic tasks that are needed by the solution strategy.
Definition: scheme.h:56
Solving strategy base class This is the base class from which we will derive all the strategies (impl...
Definition: solving_strategy.h:64
Definition: structure_adjoint_sensitivity_strategy.h:53
~StructureAdjointSensitivityStrategy() override
virtual ~StructureAdjointSensitivityStrategy()
Definition: structure_adjoint_sensitivity_strategy.h:80
KRATOS_CLASS_POINTER_DEFINITION(StructureAdjointSensitivityStrategy)
SolvingStrategy< TSparseSpace, TDenseSpace > BaseType
Definition: structure_adjoint_sensitivity_strategy.h:61
void ComputeVolumeFractionSensitivities()
Computes DVDX sensitivities from the adjoint solution.
Definition: structure_adjoint_sensitivity_strategy.h:115
BuilderAndSolver< TSparseSpace, TDenseSpace, TLinearSolver >::Pointer BuilderAndSolverPointerType
Definition: structure_adjoint_sensitivity_strategy.h:64
Scheme< TSparseSpace, TDenseSpace >::Pointer SchemePointerType
Definition: structure_adjoint_sensitivity_strategy.h:63
void ComputeStrainEnergySensitivities()
Computes DCDX sensitivities from the adjoint solution.
Definition: structure_adjoint_sensitivity_strategy.h:92
StructureAdjointSensitivityStrategy(ModelPart &rStructureModelPart, typename TLinearSolver::Pointer pNewLinearSolver, const int dimension=3)
Definition: structure_adjoint_sensitivity_strategy.h:70
#define KRATOS_CATCH(MoreInfo)
Definition: define.h:110
#define KRATOS_TRY
Definition: define.h:109
#define KRATOS_INFO(label)
Definition: logger.h:250
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
void block_for_each(TIterator itBegin, TIterator itEnd, TFunction &&rFunction)
Execute a functor on all items of a range in parallel.
Definition: parallel_utilities.h:299
int dimension
Definition: isotropic_damage_automatic_differentiation.py:123
integer i
Definition: TensorModule.f:17