## Body force ```fortran SUBROUTINE KernelAssembleBodyForce1(rhs, dom, bodyFunc, cellFE, & & linCellFE, spaceElemSD, linSpaceElemSD, reset, scale) CLASS(VectorField_), INTENT(INOUT) :: rhs CLASS(Domain_), INTENT(INOUT) :: dom CLASS(UserFunction_), INTENT(INOUT) :: bodyFunc TYPE(FiniteElementPointer_), INTENT(INOUT) :: cellFE(:) TYPE(FiniteElementPointer_), INTENT(INOUT) :: linCellFE(:) TYPE(ElemShapeData_), INTENT(INOUT) :: spaceElemSD(:) TYPE(ElemShapeData_), INTENT(INOUT) :: linSpaceElemSD(:) LOGICAL(LGT), INTENT(IN) :: reset REAL(DFP), INTENT(IN) :: scale ``` In this method we need following improvements. - [ ] Change the name of bodyFunc to func - [ ] Add times argument to evaluate the body force at a given time when func is time dependent ## Surface force ```fortran SUBROUTINE KernelAssembleSurfaceForce1(rhs, dom, nbcPtrs, func, fe, & & linFE, spaceElemSD, linSpaceElemSD, reset, scale, timeVec) CLASS(VectorField_), INTENT(INOUT) :: rhs CLASS(Domain_), INTENT(INOUT) :: dom TYPE(NeumannBCPointer_), INTENT(INOUT) :: nbcPtrs(:) CLASS(UserFunction_), INTENT(INOUT) :: func TYPE(FiniteElementPointer_), INTENT(INOUT) :: fe(:) TYPE(FiniteElementPointer_), INTENT(INOUT) :: linFE(:) TYPE(ElemShapeData_), INTENT(INOUT) :: spaceElemSD(:) TYPE(ElemShapeData_), INTENT(INOUT) :: linSpaceElemSD(:) LOGICAL(LGT), INTENT(IN) :: reset REAL(DFP), INTENT(IN) :: scale REAL(DFP), INTENT(IN) :: timeVec(:) ``` - [ ] Add times argument - [ ] Add feature for tangential and normal forces ## Add Line force - [ ] TODO
Activity