Skip to content

Enhancements in NodeField #305

@vickysharma0812

Description

@vickysharma0812

Following enhancements are planned

Blas functions

  • AXPY
  • SCAL
  • COPY
  • SWAP
  • XPAY
  • AXPYZ
  • PMUL
  • PDIV
  • SETALL
  • ABS
  • RECIPROCAL
  • SHIFT
  • DOT_PRODUCT
  • NORM1
  • NORM2
  • NORMi
  • SUM

Dirichlet boundary condition

  • ApplyDBC(dbc, times)

  • ApplyDBC by using external field data (when dbc%isExternal is true)

  • In this method, we should not allocate the array every time we apply the boundary condition.

Set value

SetByFunction

  • Set by user function (Partially)
  • Set by reading a file (Partially)
  • Set by HDF5 (Partially)
INTERFACE
  MODULE SUBROUTINE obj_SetByFunction(obj, func, times, ivar, idof,  &
    & spaceCompo, timeCompo)
    CLASS(AbstractNodeField_), INTENT(INOUT) :: obj
    CLASS(UserFunction_), INTENT(INOUT) :: func
    REAL(DFP), OPTIONAL, INTENT(IN) :: times(:)
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: ivar
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: idof
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: spaceCompo
    INTEGER(I4B), OPTIONAL, INTENT(IN) :: timeCompo
  END SUBROUTINE obj_SetByFunction
END INTERFACE

Currently, in this function we are not using the ivar, idof, spaceCompo, timeCompo.

The following enhancements are planed.

ScalarField

Do Nothing

STScalarField

  • use timeCompo to set the value of a specific time component.
  • In this case, if times present then it size should 1, which represents the times for the time component.

VectorField

  • use spaceCompo to set the value of a specific space component.
  • In this case, the return type of function should be a scalar
  • If times present then its size should be 1, which represents the times at which the value is set.

STVectorField

  • use spaceCompo and/or timeCompo to set the value of a specific space and/or time component.

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions