Lisandro Dalcin avatar Lisandro Dalcin committed f8612ed

Expose rational weights in IGAPoint

Comments (0)

Files changed (3)

   PetscInt npd;
 
   PetscReal   *geometry;/*  [nen][nsd] */
+  PetscReal   *rational;/*  [nen]      */
   PetscScalar *property;/*  [nen][npd] */
 
   PetscReal *weight;   /*   [1]   */
  start:
 
   point->geometry = element->geometryX;
+  point->rational = element->rationalW;
   point->property = element->propertyA;
   if (!element->geometry)
     point->geometry = NULL;
+  if (!element->rational)
+    point->rational = NULL;
   if (!element->property)
     point->property = NULL;
 

src/petigaftn.F90

      integer(kind=IGA_INTEGER_KIND) :: npd
 
      type(C_PTR) :: geometry
+     type(C_PTR) :: rational
      type(C_PTR) :: property
 
      type(C_PTR) :: weight
       call c2f(p%geometry,X,(/p%nsd,p%nen/))
     end function IGA_Geometry
 
+    function IGA_Rational(p) result(W)
+      use ISO_C_BINDING, only: c2f => C_F_POINTER
+      use ISO_C_BINDING, only: nonnull => C_ASSOCIATED
+      implicit none
+      type(IGAPoint), intent(in) :: p
+      real(kind=IGA_REAL_KIND), pointer :: W(:)
+      nullify(W)
+      if (nonnull(p%rational)) &
+      call c2f(p%rational,W,(/p%nen/))
+    end function IGA_Rational
+
     function IGA_Property(p) result(A)
       use ISO_C_BINDING, only: c2f => C_F_POINTER
       use ISO_C_BINDING, only: nonnull => C_ASSOCIATED
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.