Skip to content

Commit cb330fc

Browse files
Merge pull request #215 from vickysharma0812/issue212
Issue212
2 parents dadc999 + 7b2563a commit cb330fc

File tree

9 files changed

+375
-249
lines changed

9 files changed

+375
-249
lines changed

src/modules/AbstractMaterial/src/AbstractMaterial_Class.F90

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ MODULE AbstractMaterial_Class
2929
USE FPL, ONLY: ParameterList_
3030
USE TxtFile_Class
3131
USE tomlf, ONLY: toml_table
32+
USE tomlf, ONLY: toml_array
3233
USE Fhash, ONLY: FhashTable_ => fhash_tbl_t
3334
IMPLICIT NONE
3435
PRIVATE
@@ -104,10 +105,10 @@ MODULE AbstractMaterial_Class
104105
PROCEDURE, PUBLIC, PASS(obj) :: IMPORT => am_Import
105106
PROCEDURE, PUBLIC, PASS(obj) :: ImportFromToml1 => &
106107
& am_ImportFromToml1
107-
PROCEDURE, PUBLIC, PASS(obj) :: ImportFromToml2 => &
108-
& am_ImportFromToml2
109-
GENERIC, PUBLIC :: ImportFromTom => ImportFromToml1, &
110-
& ImportFromToml2
108+
PROCEDURE, PUBLIC, PASS(obj) :: ImportFromToml2 => am_ImportFromToml2
109+
PROCEDURE, PUBLIC, PASS(obj) :: ImportFromToml3 => am_ImportFromToml3
110+
GENERIC, PUBLIC :: ImportFromToml => ImportFromToml1, ImportFromToml2, &
111+
& ImportFromToml3
111112

112113
! GET:
113114
! @GetMethods
@@ -336,19 +337,34 @@ END SUBROUTINE am_ImportFromToml1
336337
! ImportFromToml@IOMethods
337338
!----------------------------------------------------------------------------
338339

340+
!> author: Vikas Sharma, Ph. D.
341+
! date: 2023-11-08
342+
! summary: Initiate param from the toml file
343+
344+
INTERFACE AbstractMaterialImportFromToml
345+
MODULE SUBROUTINE am_ImportFromToml2(obj, array)
346+
CLASS(AbstractMaterial_), INTENT(INOUT) :: obj
347+
TYPE(toml_array), POINTER, INTENT(INOUT) :: array
348+
END SUBROUTINE am_ImportFromToml2
349+
END INTERFACE AbstractMaterialImportFromToml
350+
351+
!----------------------------------------------------------------------------
352+
! ImportFromToml@IOMethods
353+
!----------------------------------------------------------------------------
354+
339355
!> author: Vikas Sharma, Ph. D.
340356
! date: 2023-11-08
341357
! summary: Initiate kernel from the toml file
342358

343359
INTERFACE AbstractMaterialImportFromToml
344-
MODULE SUBROUTINE am_ImportFromToml2(obj, tomlName, afile, filename, &
360+
MODULE SUBROUTINE am_ImportFromToml3(obj, tomlName, afile, filename, &
345361
& printToml)
346362
CLASS(AbstractMaterial_), INTENT(INOUT) :: obj
347363
CHARACTER(*), INTENT(IN) :: tomlName
348364
TYPE(TxtFile_), OPTIONAL, INTENT(INOUT) :: afile
349365
CHARACTER(*), OPTIONAL, INTENT(IN) :: filename
350366
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: printToml
351-
END SUBROUTINE am_ImportFromToml2
367+
END SUBROUTINE am_ImportFromToml3
352368
END INTERFACE AbstractMaterialImportFromToml
353369

354370
END MODULE AbstractMaterial_Class

src/modules/AbstractMaterialModel/src/AbstractMaterialModel_Class.F90

Lines changed: 47 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,29 @@ MODULE AbstractMaterialModel_Class
4646
TYPE(String) :: name
4747
CONTAINS
4848
PRIVATE
49+
50+
! CONSTRUCTOR:
51+
! @ConstructorMethods
4952
PROCEDURE(amb_CheckEssentialParam), DEFERRED, PUBLIC, PASS(obj) :: &
5053
& CheckEssentialParam
5154
PROCEDURE(amb_Initiate), DEFERRED, PUBLIC, PASS(obj) :: Initiate
5255
PROCEDURE(amb_Deallocate), DEFERRED, PUBLIC, PASS(obj) :: &
5356
& DEALLOCATE
57+
PROCEDURE, PUBLIC, PASS(obj) :: isInitiated => amb_isInitiated
58+
59+
! IO:
60+
! @IOMethods
5461
PROCEDURE(amb_Import), DEFERRED, PUBLIC, PASS(obj) :: IMPORT
5562
PROCEDURE(amb_Export), DEFERRED, PUBLIC, PASS(obj) :: Export
5663
PROCEDURE(amb_Display), DEFERRED, PUBLIC, PASS(obj) :: Display
64+
65+
! GET:
66+
! @GetMethods
5767
PROCEDURE(amb_GetPrefix), DEFERRED, PUBLIC, PASS(obj) :: GetPrefix
58-
PROCEDURE, PUBLIC, PASS(obj) :: isInitiated => amb_isInitiated
5968
PROCEDURE, PUBLIC, PASS(obj) :: GetName => amb_GetName
69+
70+
! SET:
71+
! @SetMethods
6072
PROCEDURE, PUBLIC, PASS(obj) :: SetIsInitiated => amb_SetIsInitiated
6173
PROCEDURE, PUBLIC, PASS(obj) :: SetName => amb_SetName
6274
END TYPE AbstractMaterialModel_
@@ -208,4 +220,38 @@ SUBROUTINE amb_SetName(obj, VALUE)
208220
obj%name = VALUE
209221
END SUBROUTINE amb_SetName
210222

223+
!----------------------------------------------------------------------------
224+
! ImportFromToml@IOMethods
225+
!----------------------------------------------------------------------------
226+
227+
!> author: Vikas Sharma, Ph. D.
228+
! date: 2023-11-08
229+
! summary: Initiate param from the toml file
230+
231+
INTERFACE AbstractMaterialImportFromToml
232+
MODULE SUBROUTINE am_ImportFromToml1(obj, table)
233+
CLASS(AbstractMaterial_), INTENT(INOUT) :: obj
234+
TYPE(toml_table), INTENT(INOUT) :: table
235+
END SUBROUTINE am_ImportFromToml1
236+
END INTERFACE AbstractMaterialImportFromToml
237+
238+
!----------------------------------------------------------------------------
239+
! ImportFromToml@IOMethods
240+
!----------------------------------------------------------------------------
241+
242+
!> author: Vikas Sharma, Ph. D.
243+
! date: 2023-11-08
244+
! summary: Initiate kernel from the toml file
245+
246+
INTERFACE AbstractMaterialImportFromToml
247+
MODULE SUBROUTINE am_ImportFromToml3(obj, tomlName, afile, filename, &
248+
& printToml)
249+
CLASS(AbstractMaterial_), INTENT(INOUT) :: obj
250+
CHARACTER(*), INTENT(IN) :: tomlName
251+
TYPE(TxtFile_), OPTIONAL, INTENT(INOUT) :: afile
252+
CHARACTER(*), OPTIONAL, INTENT(IN) :: filename
253+
LOGICAL(LGT), OPTIONAL, INTENT(IN) :: printToml
254+
END SUBROUTINE am_ImportFromToml3
255+
END INTERFACE AbstractMaterialImportFromToml
256+
211257
END MODULE AbstractMaterialModel_Class

src/modules/SolidMaterial/src/SolidMaterial_Class.F90

Lines changed: 68 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -65,19 +65,32 @@ MODULE SolidMaterial_Class
6565
!! Pointer to stress strain material behavior of solids
6666
CONTAINS
6767
PRIVATE
68+
69+
! CONSTRUCTOR:
70+
! @ConstructorMethods
6871
PROCEDURE, PUBLIC, PASS(obj) :: CheckEssentialParam => &
6972
& solid_CheckEssentialParam
7073
PROCEDURE, PUBLIC, PASS(obj) :: Initiate => solid_Initiate
7174
PROCEDURE, PUBLIC, PASS(obj) :: DEALLOCATE => solid_Deallocate
7275
FINAL :: solid_Final
76+
77+
! IO:
78+
! @IOMethods
7379
PROCEDURE, PUBLIC, PASS(obj) :: IMPORT => solid_Import
7480
PROCEDURE, PUBLIC, PASS(obj) :: Export => solid_Export
7581
PROCEDURE, PUBLIC, PASS(obj) :: Display => solid_Display
82+
83+
! GET:
84+
! @GetMethods
7685
PROCEDURE, PUBLIC, PASS(obj) :: GetStressStrainModelPointer => &
7786
& solid_GetStressStrainModelPointer
7887
PROCEDURE, PUBLIC, PASS(obj) :: GetPrefix => solid_GetPrefix
7988
END TYPE SolidMaterial_
8089

90+
!----------------------------------------------------------------------------
91+
! TypeSolidMaterial
92+
!----------------------------------------------------------------------------
93+
8194
TYPE(SolidMaterial_), PARAMETER :: TypeSolidMaterial = SolidMaterial_()
8295

8396
!----------------------------------------------------------------------------
@@ -88,34 +101,6 @@ MODULE SolidMaterial_Class
88101
CLASS(SolidMaterial_), POINTER :: ptr => NULL()
89102
END TYPE SolidMaterialPointer_
90103

91-
!----------------------------------------------------------------------------
92-
! Deallocate@ConstructorMethods
93-
!----------------------------------------------------------------------------
94-
95-
!> author: Vikas Sharma, Ph. D.
96-
! date: 2023-09-09
97-
! summary: Deallocate the vector
98-
99-
INTERFACE DEALLOCATE
100-
MODULE SUBROUTINE Deallocate_Vector(obj)
101-
TYPE(SolidMaterial_), ALLOCATABLE :: obj(:)
102-
END SUBROUTINE Deallocate_Vector
103-
END INTERFACE DEALLOCATE
104-
105-
!----------------------------------------------------------------------------
106-
! Deallocate@ConstructorMethods
107-
!----------------------------------------------------------------------------
108-
109-
!> author: Vikas Sharma, Ph. D.
110-
! date: 2023-09-09
111-
! summary: Deallocate the vector of pointer
112-
113-
INTERFACE DEALLOCATE
114-
MODULE SUBROUTINE Deallocate_Ptr_Vector(obj)
115-
TYPE(SolidMaterialPointer_), ALLOCATABLE :: obj(:)
116-
END SUBROUTINE Deallocate_Ptr_Vector
117-
END INTERFACE DEALLOCATE
118-
119104
!----------------------------------------------------------------------------
120105
! SetSolidMaterialParam@ConstructorMethods
121106
!----------------------------------------------------------------------------
@@ -158,7 +143,6 @@ END SUBROUTINE SetSolidMaterialParam
158143
! It Checks the existance of
159144
!
160145
! - `SolidMaterial/name`
161-
! - `SolidMaterial/massDensity`
162146
! - `SolidMaterial/stresStrainModel`
163147

164148
INTERFACE
@@ -181,7 +165,6 @@ END SUBROUTINE solid_CheckEssentialParam
181165
! It reads the options from `param`, and sets the options of `SolidMaterial`
182166
!
183167
!- `SolidMaterial/name`
184-
!- `SolidMaterial/massDensity`
185168
!- `SolidMaterial/stresStrainModel`
186169
!
187170
! This routine calls the [[MaterialFactory:SolidMechanicsModelFactory]] to
@@ -201,6 +184,33 @@ MODULE SUBROUTINE solid_Initiate(obj, param, prefix)
201184
END SUBROUTINE solid_Initiate
202185
END INTERFACE
203186

187+
!----------------------------------------------------------------------------
188+
! AddSolidMaterial@ConstructorMethods
189+
!----------------------------------------------------------------------------
190+
191+
!> author: Vikas Sharma, Ph. D.
192+
! date: 2023-09-11
193+
! summary: Add a solid material to the vector of SolidMaterialPointer_
194+
195+
INTERFACE AddSolidMaterial
196+
MODULE SUBROUTINE solid_AddSolidMaterial( &
197+
& obj, &
198+
& tMaterials, &
199+
& materialNo, &
200+
& materialName, &
201+
& solidMaterialToMesh, &
202+
& param, &
203+
& region)
204+
TYPE(SolidMaterialPointer_), INTENT(INOUT) :: obj(:)
205+
INTEGER(I4B), INTENT(IN) :: tMaterials
206+
INTEGER(I4B), INTENT(IN) :: materialNo
207+
CHARACTER(*), OPTIONAL, INTENT(IN) :: materialName
208+
TYPE(ParameterList_), OPTIONAL, INTENT(IN) :: param
209+
TYPE(MeshSelection_), OPTIONAL, INTENT(IN) :: region
210+
TYPE(MeshSelection_), OPTIONAL, INTENT(INOUT) :: solidMaterialToMesh(:)
211+
END SUBROUTINE solid_AddSolidMaterial
212+
END INTERFACE AddSolidMaterial
213+
204214
!----------------------------------------------------------------------------
205215
! Deallocate@ConstructorMethods
206216
!----------------------------------------------------------------------------
@@ -225,6 +235,34 @@ MODULE SUBROUTINE solid_Deallocate(obj)
225235
END SUBROUTINE solid_Deallocate
226236
END INTERFACE
227237

238+
!----------------------------------------------------------------------------
239+
! Deallocate@ConstructorMethods
240+
!----------------------------------------------------------------------------
241+
242+
!> author: Vikas Sharma, Ph. D.
243+
! date: 2023-09-09
244+
! summary: Deallocate the vector
245+
246+
INTERFACE DEALLOCATE
247+
MODULE SUBROUTINE Deallocate_Vector(obj)
248+
TYPE(SolidMaterial_), ALLOCATABLE :: obj(:)
249+
END SUBROUTINE Deallocate_Vector
250+
END INTERFACE DEALLOCATE
251+
252+
!----------------------------------------------------------------------------
253+
! Deallocate@ConstructorMethods
254+
!----------------------------------------------------------------------------
255+
256+
!> author: Vikas Sharma, Ph. D.
257+
! date: 2023-09-09
258+
! summary: Deallocate the vector of pointer
259+
260+
INTERFACE DEALLOCATE
261+
MODULE SUBROUTINE Deallocate_Ptr_Vector(obj)
262+
TYPE(SolidMaterialPointer_), ALLOCATABLE :: obj(:)
263+
END SUBROUTINE Deallocate_Ptr_Vector
264+
END INTERFACE DEALLOCATE
265+
228266
!----------------------------------------------------------------------------
229267
! Final@ConstructorMethods
230268
!----------------------------------------------------------------------------
@@ -307,33 +345,6 @@ MODULE FUNCTION solid_GetStressStrainModelPointer(obj) RESULT(ans)
307345
END FUNCTION solid_GetStressStrainModelPointer
308346
END INTERFACE
309347

310-
!----------------------------------------------------------------------------
311-
! AddSolidMaterial@SetMethod
312-
!----------------------------------------------------------------------------
313-
314-
!> author: Vikas Sharma, Ph. D.
315-
! date: 2023-09-11
316-
! summary: Add a solid material to the vector of SolidMaterialPointer_
317-
318-
INTERFACE AddSolidMaterial
319-
MODULE SUBROUTINE solid_AddSolidMaterial( &
320-
& obj, &
321-
& tMaterials, &
322-
& materialNo, &
323-
& materialName, &
324-
& solidMaterialToMesh, &
325-
& param, &
326-
& region)
327-
TYPE(SolidMaterialPointer_), INTENT(INOUT) :: obj(:)
328-
INTEGER(I4B), INTENT(IN) :: tMaterials
329-
INTEGER(I4B), INTENT(IN) :: materialNo
330-
CHARACTER(*), OPTIONAL, INTENT(IN) :: materialName
331-
TYPE(ParameterList_), OPTIONAL, INTENT(IN) :: param
332-
TYPE(MeshSelection_), OPTIONAL, INTENT(IN) :: region
333-
TYPE(MeshSelection_), OPTIONAL, INTENT(INOUT) :: solidMaterialToMesh(:)
334-
END SUBROUTINE solid_AddSolidMaterial
335-
END INTERFACE AddSolidMaterial
336-
337348
!----------------------------------------------------------------------------
338349
! GetPrefix@GetMethods
339350
!----------------------------------------------------------------------------

src/modules/easifemClasses/src/easifemClasses.F90

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,4 @@ MODULE easifemClasses
6969

7070
USE TomlUtility
7171

72-
USE easifemMaterials
7372
END MODULE easifemClasses

0 commit comments

Comments
 (0)