[cig-commits] r13440 - short/3D/PyLith/trunk/modulesrc/materials
brad at geodynamics.org
brad at geodynamics.org
Tue Dec 2 12:06:44 PST 2008
Author: brad
Date: 2008-12-02 12:06:44 -0800 (Tue, 02 Dec 2008)
New Revision: 13440
Modified:
short/3D/PyLith/trunk/modulesrc/materials/materials.pyxe.src
Log:
Nondimensionzlized physical properties.
Modified: short/3D/PyLith/trunk/modulesrc/materials/materials.pyxe.src
===================================================================
--- short/3D/PyLith/trunk/modulesrc/materials/materials.pyxe.src 2008-12-02 20:06:35 UTC (rev 13439)
+++ short/3D/PyLith/trunk/modulesrc/materials/materials.pyxe.src 2008-12-02 20:06:44 UTC (rev 13440)
@@ -71,27 +71,24 @@
return
- def initialize(self, mesh, cs, quadrature, normalizer):
+ def initialize(self, mesh, cs, quadrature):
"""
Initialize material by getting physical property parameters from
database.
"""
# create shim for method 'initialize'
- #embed{ void Material_initialize(void* objVptr, void* meshVptr, void* csVptr, void* qVptr, void* nVptr)
+ #embed{ void Material_initialize(void* objVptr, void* meshVptr, void* csVptr, void* qVptr)
try {
assert(0 != objVptr);
assert(0 != meshVptr);
assert(0 != csVptr);
assert(0 != qVptr);
- assert(0 != nVptr);
ALE::Obj<pylith::Mesh>* mesh = (ALE::Obj<pylith::Mesh>*) meshVptr;
spatialdata::geocoords::CoordSys* cs =
(spatialdata::geocoords::CoordSys*) csVptr;
pylith::feassemble::Quadrature* quadrature =
(pylith::feassemble::Quadrature*) qVptr;
- spatialdata::units::Nondimensional* normalizer =
- (spatialdata::units::Nondimensional*) nVptr;
- ((pylith::materials::Material*) objVptr)->initialize(*mesh, cs, quadrature, *normalizer);
+ ((pylith::materials::Material*) objVptr)->initialize(*mesh, cs, quadrature);
} catch (const std::exception& err) {
PyErr_SetString(PyExc_RuntimeError,
const_cast<char*>(err.what()));
@@ -116,12 +113,8 @@
raise TypeError, \
"Argument must be extension module type " \
"'pylith::feassemble::Quadrature'."
- if not normalizer.name == "spatialdata_units_Nondimensional":
- raise TypeError, \
- "Argument must be extension module type " \
- "'spatialdata::units::Nondimensional'."
Material_initialize(self.thisptr, ptrFromHandle(mesh), ptrFromHandle(cs),
- ptrFromHandle(quadrature), ptrFromHandle(normalizer))
+ ptrFromHandle(quadrature))
return
@@ -295,6 +288,37 @@
return Material_dimension_get(self.thisptr)
+ property normalizer:
+ def __set__(self, value):
+ """
+ Set scales for nondimensionalizing physical properties.
+ """
+ # create shim for method 'normalizer'
+ #embed{ void Material_normalizer_set(void* objVptr, void* dimVptr)
+ try {
+ assert(0 != objVptr);
+ assert(0 != dimVptr);
+ spatialdata::units::Nondimensional* dim =
+ (spatialdata::units::Nondimensional*) dimVptr;
+ ((pylith::materials::Material*) objVptr)->normalizer(*dim);
+ } catch (const std::exception& err) {
+ PyErr_SetString(PyExc_RuntimeError,
+ const_cast<char*>(err.what()));
+ } catch (const ALE::Exception& err) {
+ PyErr_SetString(PyExc_RuntimeError,
+ const_cast<char*>(err.msg().c_str()));
+ } catch (...) {
+ PyErr_SetString(PyExc_RuntimeError,
+ "Caught unknown C++ exception.");
+ } // try/catch
+ #}embed
+ if not value.name == "spatialdata_units_Nondimensional":
+ raise TypeError, \
+ "Argument must be extension module type " \
+ "'spatialdata::units::Nondimensional'."
+ Material_normalizer_set(self.thisptr, ptrFromHandle(value))
+
+
# ----------------------------------------------------------------------
cdef class ElasticMaterial(Material):
More information about the CIG-COMMITS
mailing list